export type HookPriority = 'high' | 'normal' | 'low'; export interface RequestContext { method: string; params: Record | undefined; url?: string; init?: RequestInit; response?: { status: number; }; json?: unknown; } export type ErrorContext = Partial; export type Middleware = (ctx: C, next: () => Promise) => unknown; export type ErrorHandler = (err: Error, ctx: ErrorContext) => Error | void | Promise; export interface DispatchErrorContext { /** the raw update payload that failed to dispatch, as received from telegram */ raw: Record; } export type DispatchErrorHandler = (err: Error, ctx: DispatchErrorContext) => unknown; export interface HookOptions { priority?: HookPriority; } export type RequestHookName = 'onBeforeRequest' | 'onRequestIntercept' | 'onResponseIntercept' | 'onAfterRequest'; export type LifecycleHookName = 'onInit' | 'onShutdown'; export declare class HookRegistry { private readonly request; private readonly apiCall; private readonly update; private readonly init; private readonly shutdown; private readonly error; private readonly dispatchError; /** drives the crash-by-default startup warning in `Telegram.bootstrap` */ get hasDispatchErrorHandler(): boolean; add(name: RequestHookName, fn: Middleware, opts?: HookOptions): void; add(name: 'onApiCall', fn: Middleware, opts?: HookOptions): void; add(name: 'onUpdate', fn: Middleware, opts?: HookOptions): void; add(name: 'onInit' | 'onShutdown', fn: Middleware<{ tg: unknown; }>): void; add(name: 'onError', fn: ErrorHandler): void; add(name: 'onDispatchError', fn: DispatchErrorHandler): void; run(name: RequestHookName, ctx: RequestContext): Promise; run(name: 'onUpdate', ctx: unknown): Promise; run(name: 'onInit' | 'onShutdown', ctx: { tg: unknown; }): Promise; runApiCall(ctx: RequestContext, action: () => Promise): Promise; /** runs onUpdate chain with a fixed slot for `tg.on(...)` handlers between `normal` and `low` */ runUpdate(ctx: unknown, userHandlers: Middleware): Promise; runError(err: Error, ctx: ErrorContext): Promise; /** returns true if any onDispatchError handler ran — caller treats the error as observed */ runDispatchError(err: Error, ctx: DispatchErrorContext): Promise; } //# sourceMappingURL=hooks.d.ts.map