UNPKG

1.31 kBTypeScriptView Raw
1import BaseScene from './base';
2import Context from '../context';
3import { SessionContext } from '../session';
4export interface SceneContext<D extends SceneSessionData = SceneSessionData> extends Context {
5 session: SceneSession<D>;
6 scene: SceneContextScene<SceneContext<D>, D>;
7}
8export interface SceneSessionData {
9 current?: string;
10 expires?: number;
11 state?: object;
12}
13export interface SceneSession<S extends SceneSessionData = SceneSessionData> {
14 __scenes: S;
15}
16export interface SceneContextSceneOptions<D extends SceneSessionData> {
17 ttl?: number;
18 default?: string;
19 defaultSession: D;
20}
21export default class SceneContextScene<C extends SessionContext<SceneSession<D>>, D extends SceneSessionData = SceneSessionData> {
22 private readonly ctx;
23 private readonly scenes;
24 private readonly options;
25 constructor(ctx: C, scenes: Map<string, BaseScene<C>>, options: Partial<SceneContextSceneOptions<D>>);
26 get session(): D;
27 get state(): object;
28 set state(value: object);
29 get current(): BaseScene<C> | undefined;
30 reset(): void;
31 enter(sceneId: string, initialState?: object, silent?: boolean): Promise<unknown>;
32 reenter(): Promise<unknown> | undefined;
33 private leaving;
34 leave(): Promise<void>;
35}
36//# sourceMappingURL=context.d.ts.map
\No newline at end of file