/** * yaebal — the batteries-included entry point (the gramio idea). re-exports the * core engine, the auto-generated contexts, and the common plugins so a bot needs * a single import. `createBot()` wires the rich per-update contexts (with their * auto-generated shortcut methods) onto every update via the core context factory. */ export type { AutoRetryEvent, AutoRetryOptions, RetryDecision, RetryReason, } from "@yaebal/again"; export { autoRetry, decideRetry } from "@yaebal/again"; export type { AutoAnswerContext, AutoAnswerMode, AutoAnswerOptions, AutoAnswerParams, CallbackContext, } from "@yaebal/auto-answer"; export { autoAnswer } from "@yaebal/auto-answer"; export type { CallbackData, Codec, InferInput, InferOutput, Schema } from "@yaebal/callback-data"; export { callbackData, field } from "@yaebal/callback-data"; export * from "@yaebal/contexts"; export * from "@yaebal/core"; export type { DocumentFileId } from "@yaebal/file-id"; export { FileId, FileIdParseError, FileType, FileUniqueId, fileUniqueIdFromFileId, UnsupportedFileIdVersionError, } from "@yaebal/file-id"; export type { FileCallOptions, FileInput, FileSource, FilesControl, FilesErrorReason, FilesOptions, TelegramFile, } from "@yaebal/files"; export { createFiles, FileDownload, FilesError, files, resolveFileId } from "@yaebal/files"; export { and, defineFilter, filters, not, or } from "@yaebal/filters"; export { html, htmlToEntities, md, mdToEntities } from "@yaebal/fmt"; export type { HydratedMessage, HydrateFlavor, HydrateMessageMethods, HydrateReaction, } from "@yaebal/hydrate"; export { hydrate, hydrateApi, hydrateMessage } from "@yaebal/hydrate"; export type { Dict, I18n, I18nControls, LocaleLike, TFn } from "@yaebal/i18n"; export { createI18n, i18n } from "@yaebal/i18n"; export { InlineQueryResult, InputMessageContent } from "@yaebal/inline-results"; export { InlineKeyboard, Keyboard } from "@yaebal/keyboard"; export type { SessionKey, SessionOptions, TtlValue } from "@yaebal/session"; export { clearSession, keyBy, lazySession, SessionError, saveSession, session, ttl, unwrapTtl, } from "@yaebal/session"; export type { KVNamespaceLike, KvStorageOptions, MemoryStorageOptions, RedisLike, RedisStorageOptions, Serializer, SqliteLike, SqliteStorageOptions, StorageAdapter, } from "@yaebal/sklad"; export { kvStorage, MemoryStorage, redisStorage, sqliteStorage } from "@yaebal/sklad"; export type { LongSendOptions, SplitCaptionOptions, SplitControl, SplitPart, SplitPartInfo, SplitSendOptions, SplitSource, SplitterOptions, } from "@yaebal/split"; export { MAX_CAPTION_LENGTH, MAX_MESSAGE_LENGTH, SplitSendError, split, splitCaption, splitParts, splitSend, splitText, splitter, } from "@yaebal/split"; export type { ChatAction, TypingControl, TypingOptions } from "@yaebal/typing"; export { typing } from "@yaebal/typing"; export type { ApiBot, DedupeOptions, DeleteWebhookOptions, KeyFn, ServeOptions, ServerHandle, SetWebhookOptions, } from "@yaebal/web"; export { adapters, awsLambdaAdapter, azureAdapter, cloudflareAdapter, dedupe, deleteWebhook, elysiaAdapter, expressAdapter, fastifyAdapter, gcfAdapter, getWebhookInfo, honoAdapter, isTelegramIp, koaAdapter, nextAdapter, sequentialize, serve, setWebhook, svelteKitAdapter, TELEGRAM_IP_RANGES, webhook, } from "@yaebal/web"; import { type ContextByType } from "@yaebal/contexts"; import { type BotOptions, type CallbackDataMatcher, type CallbackQuery, type Composer, Context, Bot as CoreBot, type Filtered, type FilterQuery, type Middleware, type UpdateName } from "@yaebal/core"; type ContextFactory = NonNullable; /** * build a base {@link Context} and graft the auto-generated shortcut methods * (`react`, `editText`, `pin`, …) of the matching per-update context onto it. * core's own methods (`send`/`reply`/…) win; the rest are added. */ export declare const richContext: ContextFactory; type QueryHead = Q extends `${infer H}:${string}` ? H : Q; type RichFor = QueryHead extends keyof ContextByType ? ContextByType[QueryHead] : Record; /** * a {@link CoreBot} whose routers type the handler context to the matching * per-update generated context — so `ctx.react`, `ctx.editText`, … are typed * (not just present at runtime). `on("message:text")` → `MessageContext`, * `on("callback_query:data")` → `CallbackQueryContext`, etc. */ export declare class Bot extends CoreBot { constructor(token: string, options?: BotOptions); derive(fn: (ctx: C) => D | Promise): Bot; derive(updates: UpdateName | UpdateName[], fn: (ctx: C) => D | Promise): Bot>; decorate(value: D): Bot; guard(predicate: (ctx: C) => ctx is C2): Bot; guard(predicate: (ctx: C) => boolean | Promise): this; extend(other: Composer): Bot; install(plugin: (composer: Composer) => Composer): Bot; install(plugin: (bot: CoreBot) => CoreBot): Bot; on(query: Q, ...handlers: Middleware & RichFor>[]): this; callbackQuery(data: CallbackDataMatcher, ...handlers: Middleware[]): this; callbackQuery(trigger: string | RegExp, ...handlers: Middleware[]): this; command(name: string, ...handlers: Middleware[]): this; hears(trigger: string | RegExp, ...handlers: Middleware[]): this; } /** create a bot whose handlers receive the rich auto-generated context — typed and at runtime. */ export declare function createBot(token: string, options?: BotOptions): Bot; //# sourceMappingURL=index.d.ts.map