import type { RemoteClawConfig } from "../../../src/config/config.js"; import type { ChannelGroupPolicy } from "../../../src/config/group-policy.js"; import type { TelegramAccountConfig } from "../../../src/config/types.js"; import type { RuntimeEnv } from "../../../src/runtime.js"; import type { MockFn } from "../../../src/test-utils/vitest-mock-fn.js"; import { registerTelegramNativeCommands } from "./bot-native-commands.js"; type RegisterTelegramNativeCommandsParams = Parameters[0]; type AnyMock = MockFn<(...args: unknown[]) => unknown>; type AnyAsyncMock = MockFn<(...args: unknown[]) => Promise>; type NativeCommandHarness = { handlers: Record Promise>; sendMessage: AnyAsyncMock; setMyCommands: AnyAsyncMock; log: AnyMock; bot: { api: { setMyCommands: AnyAsyncMock; sendMessage: AnyAsyncMock; }; command: (name: string, handler: (ctx: unknown) => Promise) => void; }; }; export declare const getPluginCommandSpecs: import("vitest").Mock; export declare const matchPluginCommand: import("vitest").Mock; export declare const executePluginCommand: import("vitest").Mock; export declare const deliverReplies: import("vitest").Mock<() => Promise>; export declare function createNativeCommandTestParams(params?: Partial): RegisterTelegramNativeCommandsParams; export declare function createNativeCommandsHarness(params?: { cfg?: RemoteClawConfig; runtime?: RuntimeEnv; telegramCfg?: TelegramAccountConfig; allowFrom?: string[]; groupAllowFrom?: string[]; useAccessGroups?: boolean; nativeEnabled?: boolean; groupConfig?: Record; resolveGroupPolicy?: () => ChannelGroupPolicy; }): NativeCommandHarness; export declare function createTelegramGroupCommandContext(params?: { senderId?: number; username?: string; threadId?: number; }): { message: { chat: { id: number; type: string; is_forum: boolean; }; from: { id: number; username: string; }; message_thread_id: number; message_id: number; date: number; }; match: string; }; export declare function findNotAuthorizedCalls(sendMessage: AnyAsyncMock): unknown[][]; export {};