-
Notifications
You must be signed in to change notification settings - Fork 7
/
session.d.ts
34 lines (29 loc) · 1.16 KB
/
session.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
declare module 'telegraf-session-local' {
import { AdapterSync, AdapterAsync, BaseAdapter } from 'lowdb'
import { Middleware } from 'telegraf';
import { TelegrafContext } from 'telegraf/typings/context';
export interface LocalSessionOptions<TSession> {
storage?: AdapterSync | AdapterAsync
database?: string
property?: string
state?: TSession
format?: {
serialize?: (value: TSession) => string
deserialize?: (value: string) => TSession
}
getSessionKey?: (ctx: TelegrafContext) => string
}
class LocalSession<TSession> {
public DB: unknown
constructor(options?: LocalSessionOptions<TSession>)
getSessionKey(ctx: TelegrafContext): string
getSession(key: string): TSession
saveSession(key: string, data: TSession): Promise<TSession>
middleware(property?: string): Middleware<TelegrafContext>
static get storageFileSync(): AdapterSync
static get storageFileAsync(): AdapterAsync
static get storageMemory(): AdapterSync
static get storageBase(): BaseAdapter
}
export default LocalSession;
}