1 | import BaseScene from './base';
|
2 | import Context from '../context';
|
3 | import { SessionContext } from '../session';
|
4 | export interface SceneContext<D extends SceneSessionData = SceneSessionData> extends Context {
|
5 | session: SceneSession<D>;
|
6 | scene: SceneContextScene<SceneContext<D>, D>;
|
7 | }
|
8 | export interface SceneSessionData {
|
9 | current?: string;
|
10 | expires?: number;
|
11 | state?: object;
|
12 | }
|
13 | export interface SceneSession<S extends SceneSessionData = SceneSessionData> {
|
14 | __scenes: S;
|
15 | }
|
16 | export interface SceneContextSceneOptions<D extends SceneSessionData> {
|
17 | ttl?: number;
|
18 | default?: string;
|
19 | defaultSession: D;
|
20 | }
|
21 | export 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 |