/**
 * remote/gateway/adapters/discord — Discord Gateway adapter.
 *
 * Inbound: a Discord Gateway WebSocket (v10) — Hello → heartbeat + Identify,
 * then MESSAGE_CREATE dispatches. Outbound: the REST channel-messages endpoint.
 *
 * The WebSocket is injected (`wsFactory`) so the protocol is unit-testable
 * without a network. Node >=22 supplies a global `WebSocket`; older runtimes
 * pass a factory backed by the `ws` package.
 *
 * Zero-trust: `allowedChannelIds` MUST be non-empty — allowlist AND delivery
 * targets in one. Messages authored by bots (including this one) are ignored.
 *
 * @public @since 2.14.0 — preste remote-control T4
 */
import type { GatewayAdapter, GatewayLogger, WebSocketFactory } from "../types.js";
export interface DiscordAdapterOptions {
    /** Bot token (the Discord application's bot token). */
    botToken: string;
    /** Allowlist of channel ids permitted to control + receive. Non-empty. */
    allowedChannelIds: string[];
    /** Injected WebSocket factory — defaults to the global `WebSocket`. */
    wsFactory?: WebSocketFactory;
    /** Injected fetch — defaults to the global `fetch`. */
    fetchImpl?: typeof fetch;
    /** REST API base. Default https://discord.com/api/v10. */
    apiBase?: string;
    /** Gateway WSS URL. Default wss://gateway.discord.gg/?v=10&encoding=json. */
    gatewayUrl?: string;
    /** Logger. Default no-op. */
    log?: GatewayLogger;
}
/** Create a Discord gateway adapter. */
export declare function createDiscordAdapter(opts: DiscordAdapterOptions): GatewayAdapter;
//# sourceMappingURL=discord.d.ts.map