import type { Bot } from "grammy"; import type { OpenClawConfig } from "agdi/plugin-sdk/config-runtime"; import type { ChannelGroupPolicy } from "agdi/plugin-sdk/config-runtime"; import type { ReplyToMode, TelegramAccountConfig, TelegramGroupConfig, TelegramTopicConfig } from "agdi/plugin-sdk/config-runtime"; import { getChildLogger } from "agdi/plugin-sdk/runtime-env"; import type { RuntimeEnv } from "agdi/plugin-sdk/runtime-env"; import { type TelegramBotDeps } from "./bot-deps.js"; import type { TelegramMediaRef } from "./bot-message-context.js"; import type { TelegramMessageContextOptions } from "./bot-message-context.types.js"; import { TelegramUpdateKeyContext } from "./bot-updates.js"; import { TelegramBotOptions } from "./bot.js"; import type { TelegramContext } from "./bot/types.js"; import type { TelegramTransport } from "./fetch.js"; export type RegisterTelegramHandlerParams = { cfg: OpenClawConfig; accountId: string; bot: Bot; mediaMaxBytes: number; opts: TelegramBotOptions; telegramTransport?: TelegramTransport; runtime: RuntimeEnv; telegramCfg: TelegramAccountConfig; telegramDeps?: TelegramBotDeps; allowFrom?: Array; groupAllowFrom?: Array; resolveGroupPolicy: (chatId: string | number) => ChannelGroupPolicy; resolveTelegramGroupConfig: (chatId: string | number, messageThreadId?: number) => { groupConfig?: TelegramGroupConfig; topicConfig?: TelegramTopicConfig; }; shouldSkipUpdate: (ctx: TelegramUpdateKeyContext) => boolean; processMessage: (ctx: TelegramContext, allMedia: TelegramMediaRef[], storeAllowFrom: string[], options?: TelegramMessageContextOptions, replyMedia?: TelegramMediaRef[]) => Promise; logger: ReturnType; }; export type RegisterTelegramNativeCommandsParams = { bot: Bot; cfg: OpenClawConfig; runtime: RuntimeEnv; accountId: string; telegramCfg: TelegramAccountConfig; allowFrom?: Array; groupAllowFrom?: Array; replyToMode: ReplyToMode; textLimit: number; useAccessGroups: boolean; nativeEnabled: boolean; nativeSkillsEnabled: boolean; nativeDisabledExplicit: boolean; resolveGroupPolicy: (chatId: string | number) => ChannelGroupPolicy; resolveTelegramGroupConfig: (chatId: string | number, messageThreadId?: number) => { groupConfig?: TelegramGroupConfig; topicConfig?: TelegramTopicConfig; }; shouldSkipUpdate: (ctx: TelegramUpdateKeyContext) => boolean; telegramDeps?: TelegramBotDeps; opts: { token: string; }; }; export declare const registerTelegramNativeCommands: ({ bot, cfg, runtime, accountId, telegramCfg, allowFrom, groupAllowFrom, replyToMode, textLimit, useAccessGroups, nativeEnabled, nativeSkillsEnabled, nativeDisabledExplicit, resolveGroupPolicy, resolveTelegramGroupConfig, shouldSkipUpdate, telegramDeps, opts, }: RegisterTelegramNativeCommandsParams) => void;