Skip to content

GramIO API Reference / @gramio/scenes/dist / Scene

Class: Scene<Params, Errors, State, Derives>

Defined in: scenes/index.d.ts:213

Type Parameters

Type ParameterDefault type
Paramsnever
Errors extends ErrorDefinitionsobject
State extends StateTypesDefaultRecord<string, never>
Derives extends SceneDerivesDefinitions<Params, State, any>SceneDerivesDefinitions<Params, State>

Constructors

Constructor

new Scene<Params, Errors, State, Derives>(name): Scene<Params, Errors, State, Derives>

Defined in: scenes/index.d.ts:429

Parameters

ParameterType
namestring

Returns

Scene<Params, Errors, State, Derives>

Properties

PropertyTypeDescriptionDefined in
~objectInternalscenes/index.d.ts:215
~.composerEventComposer<Context<AnyBot>, { boost_added: BoostAddedContext<AnyBot>; business_connection: BusinessConnectionContext<AnyBot>; business_message: MessageContext<AnyBot> & Require<MessageContext<AnyBot>, "from">; callback_query: CallbackQueryContext<AnyBot>; channel_post: MessageContext<AnyBot>; chat_background_set: ChatBackgroundSetContext<AnyBot>; chat_boost: ChatBoostContext<AnyBot>; chat_join_request: ChatJoinRequestContext<AnyBot>; chat_member: ChatMemberContext<AnyBot>; chat_owner_changed: ChatOwnerChangedContext<AnyBot>; chat_owner_left: ChatOwnerLeftContext<AnyBot>; chat_shared: ChatSharedContext<AnyBot>; checklist_tasks_added: ChecklistTasksAddedContext<AnyBot>; checklist_tasks_done: ChecklistTasksDoneContext<AnyBot>; chosen_inline_result: ChosenInlineResultContext<AnyBot>; delete_chat_photo: DeleteChatPhotoContext<AnyBot>; deleted_business_messages: BusinessMessagesDeletedContext<AnyBot>; direct_message_price_changed: DirectMessagePriceChangedContext<AnyBot>; edited_business_message: MessageContext<AnyBot> & Require<MessageContext<AnyBot>, "from">; edited_channel_post: MessageContext<AnyBot> & Require<MessageContext<AnyBot>, "from">; edited_message: MessageContext<AnyBot> & Require<MessageContext<AnyBot>, "from">; forum_topic_closed: ForumTopicClosedContext<AnyBot>; forum_topic_created: ForumTopicCreatedContext<AnyBot>; forum_topic_edited: ForumTopicEditedContext<AnyBot>; forum_topic_reopened: ForumTopicReopenedContext<AnyBot>; general_forum_topic_hidden: GeneralForumTopicHiddenContext<AnyBot>; general_forum_topic_unhidden: GeneralForumTopicUnhiddenContext<AnyBot>; gift: GiftContext<AnyBot>; gift_upgrade_sent: GiftUpgradeSentContext<AnyBot>; giveaway_completed: GiveawayCompletedContext<AnyBot>; giveaway_created: GiveawayCreatedContext<AnyBot>; giveaway_winners: GiveawayWinnersContext<AnyBot>; group_chat_created: GroupChatCreatedContext<AnyBot>; inline_query: InlineQueryContext<AnyBot>; invoice: InvoiceContext<AnyBot>; left_chat_member: LeftChatMemberContext<AnyBot>; location: LocationContext<AnyBot>; message: MessageContext<AnyBot> & Require<MessageContext<AnyBot>, "from">; message_auto_delete_timer_changed: MessageAutoDeleteTimerChangedContext<AnyBot>; message_reaction: MessageReactionContext<AnyBot>; message_reaction_count: MessageReactionCountContext<AnyBot>; migrate_from_chat_id: MigrateFromChatIdContext<AnyBot>; migrate_to_chat_id: MigrateToChatIdContext<AnyBot>; my_chat_member: ChatMemberContext<AnyBot>; new_chat_members: NewChatMembersContext<AnyBot>; new_chat_photo: NewChatPhotoContext<AnyBot>; new_chat_title: NewChatTitleContext<AnyBot>; paid_message_price_changed: PaidMessagePriceChangedContext<AnyBot>; passport_data: PassportDataContext<AnyBot>; pinned_message: PinnedMessageContext<AnyBot>; poll: PollContext<AnyBot>; poll_answer: PollAnswerContext<AnyBot>; pre_checkout_query: PreCheckoutQueryContext<AnyBot>; proximity_alert_triggered: ProximityAlertTriggeredContext<AnyBot>; purchased_paid_media: PaidMediaPurchasedContext<AnyBot>; refunded_payment: RefundedPaymentContext<AnyBot>; removed_chat_boost: RemovedChatBoostContext<AnyBot>; service_message: MessageContext<AnyBot>; shipping_query: ShippingQueryContext<AnyBot>; successful_payment: SuccessfulPaymentContext<AnyBot>; suggested_post_approval_failed: SuggestedPostApprovalFailedContext<AnyBot>; suggested_post_approved: SuggestedPostApprovedContext<AnyBot>; suggested_post_declined: SuggestedPostDeclinedContext<AnyBot>; suggested_post_paid: SuggestedPostPaidContext<AnyBot>; suggested_post_refunded: SuggestedPostRefundedContext<AnyBot>; unique_gift: UniqueGiftContext<AnyBot>; users_shared: UsersSharedContext<AnyBot>; video_chat_ended: VideoChatEndedContext<AnyBot>; video_chat_participants_invited: VideoChatParticipantsInvitedContext<AnyBot>; video_chat_scheduled: VideoChatScheduledContext<AnyBot>; video_chat_started: VideoChatStartedContext<AnyBot>; web_app_data: WebAppDataContext<AnyBot>; write_access_allowed: WriteAccessAllowedContext<AnyBot>; }, Context<AnyBot>, Context<AnyBot>, { }, { }, { callbackQuery: TThis; chosenInlineResult: TThis; command: TThis; hears: TThis; inlineQuery: TThis; reaction: TThis; startParameter: TThis; }, { }> & object-scenes/index.d.ts:218
~.enter(ctx) => void-scenes/index.d.ts:425
~.paramsParams-scenes/index.d.ts:216
~.stateState-scenes/index.d.ts:217
namestring-scenes/index.d.ts:427
stepsCountnumber-scenes/index.d.ts:428

Methods

ask()

ask<Key, Schema, Return>(key, validator, firstTimeMessage, options?): Scene<Params, Errors, Record<string, never> extends State ? Return : State & Return, Modify<Derives, { global: Modify<Derives["global"], { scene: Modify<Derives["global"]["scene"], { state: Record<string, never> extends State ? Return : State & Return; }>; }>; }>>

Defined in: scenes/index.d.ts:466

Type Parameters

Type ParameterDefault type
Key extends string-
Schema extends StandardSchemaV1<unknown, unknown>-
Return extends StateTypesDefault{ [key in string]: InferOutput<Schema> }

Parameters

ParameterTypeDescription
keyKey-
validatorSchema-
firstTimeMessageStringable-
options?{ onInvalidInput?: (issues) => Stringable; }-
options.onInvalidInput?(issues) => StringableCustom message when validation fails. Receives all issues from the validator.

Returns

Scene<Params, Errors, Record<string, never> extends State ? Return : State & Return, Modify<Derives, { global: Modify<Derives["global"], { scene: Modify<Derives["global"]["scene"], { state: Record<string, never> extends State ? Return : State & Return; }>; }>; }>>


compose()

compose(context, onNext?): Promise<void>

Defined in: scenes/index.d.ts:478

Parameters

ParameterType
contextContext<Bot<{ }, DeriveDefinitions, { }>> & object
onNext?() => unknown

Returns

Promise<void>


exitData()

exitData<ExitData>(): Scene<Params, Errors, State, Modify<Derives, { global: Modify<Derives["global"], { scene: Modify<Derives["global"]["scene"], { exitSub: (returnData?) => Promise<void>; }>; }>; }>>

Defined in: scenes/index.d.ts:444

Type Parameters

Type Parameter
ExitData extends Record<string, unknown>

Returns

Scene<Params, Errors, State, Modify<Derives, { global: Modify<Derives["global"], { scene: Modify<Derives["global"]["scene"], { exitSub: (returnData?) => Promise<void>; }>; }>; }>>


extend()

Call Signature

extend<UExposed, UDerives>(composer): Scene<Params, Errors, State, Derives & object & UDerives>

Defined in: scenes/index.d.ts:451

Type Parameters
Type Parameter
UExposed extends object
UDerives extends Record<string, object>
Parameters
ParameterType
composerEventComposer<any, any, any, any, UExposed, UDerives, any>
Returns

Scene<Params, Errors, State, Derives & object & UDerives>

Call Signature

extend<NewPlugin>(plugin): Scene<Params, Errors & NewPlugin["_"]["Errors"], State, Derives & NewPlugin["_"]["Derives"]>

Defined in: scenes/index.d.ts:454

Type Parameters
Type Parameter
NewPlugin extends AnyPlugin
Parameters
ParameterType
pluginNewPlugin
Returns

Scene<Params, Errors & NewPlugin["_"]["Errors"], State, Derives & NewPlugin["_"]["Derives"]>


on()

on<T>(updateName, handler): this

Defined in: scenes/index.d.ts:456

Type Parameters

Type Parameter
T extends UpdateName

Parameters

ParameterType
updateNameMaybeArray<T>
handlerHandler<InstanceType<ContextsMapping<Bot<{ }, DeriveDefinitions, { }>>[T]> & object & DeriveDefinitions[T] & Derives["global"] & Derives[T]>

Returns

this


onEnter()

onEnter(handler): this

Defined in: scenes/index.d.ts:455

Parameters

ParameterType
handler(context) => unknown

Returns

this


params()

params<SceneParams>(): Scene<SceneParams, Errors, State, Modify<Derives, { global: { scene: Modify<Derives["global"]["scene"], { params: SceneParams; }>; }; }>>

Defined in: scenes/index.d.ts:430

Type Parameters

Type Parameter
SceneParams

Returns

Scene<SceneParams, Errors, State, Modify<Derives, { global: { scene: Modify<Derives["global"]["scene"], { params: SceneParams; }>; }; }>>


run()

run(context, storage, key, data): Promise<void>

Defined in: scenes/index.d.ts:481

Parameters

ParameterType
contextContext<Bot<{ }, DeriveDefinitions, { }>> & object
storageStorage
keystring
dataScenesStorageData<unknown, unknown>

Returns

Promise<void>


state()

state<StateParams>(): Scene<Params, Errors, StateParams, Derives & object>

Defined in: scenes/index.d.ts:437

Type Parameters

Type Parameter
StateParams extends StateTypesDefault

Returns

Scene<Params, Errors, StateParams, Derives & object>


step()

Call Signature

step<T, Handler, Return>(updateName, handler): Scene<Params, Errors, Extract<Return, UpdateData<any>> extends UpdateData<Type> ? Record<string, never> extends State ? Type : State & Type : State, Modify<Derives, { global: Modify<Derives["global"], { scene: Modify<Derives["global"]["scene"], { state: Extract<Return, UpdateData<any>> extends UpdateData<Type> ? Record<string, never> extends State ? Type : State & Type : State; }>; }>; }>>

Defined in: scenes/index.d.ts:458

Type Parameters
Type ParameterDefault type
T extends UpdateName-
Handler extends StepHandler<InstanceType<ContextsMapping<Bot<{ }, DeriveDefinitions, { }>>[T]> & object & DeriveDefinitions[T] & Derives["global"] & Derives[T], any>-
ReturnAwaited<ReturnType<Handler>>
Parameters
ParameterType
updateNameMaybeArray<T>
handlerHandler
Returns

Scene<Params, Errors, Extract<Return, UpdateData<any>> extends UpdateData<Type> ? Record<string, never> extends State ? Type : State & Type : State, Modify<Derives, { global: Modify<Derives["global"], { scene: Modify<Derives["global"]["scene"], { state: Extract<Return, UpdateData<any>> extends UpdateData<Type> ? Record<string, never> extends State ? Type : State & Type : State; }>; }>; }>>

Call Signature

step(handler): this

Defined in: scenes/index.d.ts:465

Parameters
ParameterType
handlerHandler<Context<Bot<{ }, DeriveDefinitions, { }>> & Derives["global"]>
Returns

this


use()

use(handler): this

Defined in: scenes/index.d.ts:457

Parameters

ParameterType
handlerHandler<Context<Bot<{ }, DeriveDefinitions, { }>> & Derives["global"]>

Returns

this