UNPKG

grammy-guard

Version:
19 lines (18 loc) 1.05 kB
import type { CallbackData, FilterClause, Schema } from "./deps/deno.land/x/callback_data@v1.0.2/types.js"; import { createCallbackData } from "callback-data"; import { CallbackQueryContext, Context } from "./deps.js"; type Identifier = Parameters<typeof createCallbackData>[0]; type Registry = Map<Identifier, ReturnType<typeof createCallbackData>>; declare class CallbackDataRegistry<T> { protected registry: Registry; constructor(); add<I extends Identifier, S extends Schema>(id: I, schema: S): CallbackDataRegistry<T & Record<I, S>>; create<I extends keyof T>(id: I, data: CallbackData<T[I]>): string; parse<I extends keyof T>(id: I, packedData: string): CallbackData<T[I]>; regex<I extends keyof T>(id: I, clause?: FilterClause<T[I]>): RegExp; filter<I extends keyof T>(id: I, clause?: FilterClause<T[I]>): <C extends Context>(ctx: C) => ctx is CallbackQueryContext<C & { callbackData: CallbackData<T[I]>; }>; } export declare function createCallbackDataRegistry(): CallbackDataRegistry<unknown>; export {};