/**
 * Build a ChatGateway from `~/.opensquid/config.json`'s
 * `chat_connections` block. Skips adapters whose tokens are missing —
 * opensquid works with zero, one, or all three chat platforms wired.
 *
 * Per-platform adapter modules (telegram/discord/slack) are imported
 * dynamically here so the factory doesn't pull all three SDK trees
 * into the cold-start path. Each adapter's own dynamic-import of its
 * SDK runs only inside `.start()`.
 */
import { ChatGateway } from "./gateway.js";
import type { ChatConnectionsConfig } from "./config.js";
export interface BuildOptions {
    dataRoot?: string;
    /** Inject a pre-loaded config (skips disk read). For tests. */
    config?: ChatConnectionsConfig;
}
export interface BuildResult {
    gateway: ChatGateway;
    /** Platforms that ended up in the gateway. */
    activated: Array<"telegram" | "discord" | "slack">;
    /** Validation issues — surfaced but non-fatal for partial activation. */
    issues: Array<{
        platform: string;
        field: string;
        problem: string;
    }>;
}
export declare function buildChatGateway(opts?: BuildOptions): Promise<BuildResult>;
//# sourceMappingURL=factory.d.ts.map