import { listSkillCommandsForAgents } from "../../../../auto-reply/skill-commands.js";
import type { OpenClawConfig, ReplyToMode } from "../../../../config/config.js";
import { type RuntimeEnv } from "../../../../runtime.js";
import type { ChannelAccountSnapshot } from "../../../plugins/types.js";
import { createDiscordGatewayPlugin } from "./gateway-plugin.js";
import { resolveDiscordRestFetch } from "./rest-fetch.js";
export type MonitorDiscordOpts = {
    token?: string;
    accountId?: string;
    config?: OpenClawConfig;
    runtime?: RuntimeEnv;
    abortSignal?: AbortSignal;
    mediaMaxMb?: number;
    historyLimit?: number;
    replyToMode?: ReplyToMode;
    setStatus?: (next: Partial<ChannelAccountSnapshot>) => void;
};
declare function dedupeSkillCommandsForDiscord(skillCommands: ReturnType<typeof listSkillCommandsForAgents>): import("../../../../agents/skills.ts").SkillCommandSpec[];
export declare function monitorDiscordProvider(opts?: MonitorDiscordOpts): Promise<void>;
export declare const __testing: {
    createDiscordGatewayPlugin: typeof createDiscordGatewayPlugin;
    dedupeSkillCommandsForDiscord: typeof dedupeSkillCommandsForDiscord;
    resolveDiscordRestFetch: typeof resolveDiscordRestFetch;
};
export {};
