@gguf/claw
Version:
Multi-channel AI gateway with extensible messaging integrations
63 lines (62 loc) • 2.05 kB
TypeScript
import { type Message, type UserFromGetMe } from "@grammyjs/types";
import { Bot } from "grammy";
import type { OpenClawConfig, ReplyToMode } from "../config/config.js";
import type { RuntimeEnv } from "../runtime.js";
export type TelegramBotOptions = {
token: string;
accountId?: string;
runtime?: RuntimeEnv;
requireMention?: boolean;
allowFrom?: Array<string | number>;
groupAllowFrom?: Array<string | number>;
mediaMaxMb?: number;
replyToMode?: ReplyToMode;
proxyFetch?: typeof fetch;
config?: OpenClawConfig;
updateOffset?: {
lastUpdateId?: number | null;
onUpdateId?: (updateId: number) => void | Promise<void>;
};
testTimings?: {
mediaGroupFlushMs?: number;
textFragmentGapMs?: number;
};
};
export declare function getTelegramSequentialKey(ctx: {
chat?: {
id?: number;
};
me?: UserFromGetMe;
message?: Message;
channelPost?: Message;
editedChannelPost?: Message;
update?: {
message?: Message;
edited_message?: Message;
channel_post?: Message;
edited_channel_post?: Message;
callback_query?: {
message?: Message;
};
message_reaction?: {
chat?: {
id?: number;
};
};
};
}): string;
export declare function createTelegramBot(opts: TelegramBotOptions): Bot<import("grammy").Context, import("grammy").Api<import("grammy").RawApi>>;
export declare function createTelegramWebhookCallback(bot: Bot, path?: string): {
path: string;
handler: (req: {
headers: Record<string, string | string[] | undefined>;
on: (event: string, listener: (chunk: unknown) => void) => /*elided*/ any;
once: (event: string, listener: () => void) => /*elided*/ any;
}, res: {
writeHead: {
(status: number): /*elided*/ any;
(status: number, headers: Record<string, string>): /*elided*/ any;
};
end: (json?: string) => void;
}) => Promise<void>;
};