import { EventEmitter } from "node:events";
import type { VisionClawConfig } from "../config/types.js";
import type { ChannelAdapter, MessageAttachment } from "./interface.js";
/**
 * Discord channel adapter.
 * Connects via WebSocket gateway -- no public URL needed.
 * Supports multimodal inbound (images, files) and outbound (images, files).
 */
export declare class DiscordAdapter extends EventEmitter implements ChannelAdapter {
    readonly name = "discord";
    private config;
    private client;
    private _allowedChannelIds;
    constructor(config: VisionClawConfig);
    /**
     * Set the allowed Discord channel IDs for message filtering.
     * Called after owner onboarding completes with IDs from owner.json.
     * An empty array means accept all messages (guild + DM).
     */
    setAllowedChannelIds(ids: string[]): void;
    start(): Promise<void>;
    stop(): Promise<void>;
    sendMessage(to: string, message: string, attachments?: MessageAttachment[]): Promise<void>;
    sendTypingIndicator(to: string): Promise<void>;
    private processInboundMessage;
}
//# sourceMappingURL=discord.d.ts.map