/**
 * Single source of truth for the chat platforms `lobu init` can scaffold.
 * Adding a platform means adding one entry here — the init prompts, the
 * `--yes` placeholder config, and the `lobu chat --user` routing all derive
 * from this registry.
 */
interface PlatformField {
    /** Key emitted into the platform config block (e.g. "botToken"). */
    key: string;
    /** Env var the value is stored under; the config references `$ENV_VAR`. */
    envVar: string;
    /** Prompt message shown by `lobu init`. */
    label: string;
    /** Prompt with a masked password input instead of a plain input. */
    secret: boolean;
    /** Include `$ENV_VAR` in the `--yes` placeholder config (default true). */
    placeholder?: boolean;
}
interface PlatformDefinition {
    id: string;
    /** Display name used in the `lobu init` platform picker. */
    displayName: string;
    /** Setup instructions printed (one console.log per line) before prompting. */
    intro?: string[];
    fields: PlatformField[];
    /** Extra literal keys appended to the `--yes` placeholder config. */
    placeholderExtras?: Record<string, string>;
    /**
     * Post-prompt hook for conditional config keys. `values` holds the raw
     * prompt answers per field key (including empty ones); `config` is the
     * platform config built so far and may be extended in place.
     */
    finalize?: (config: Record<string, string>, values: Record<string, string>) => void;
    /**
     * How `lobu chat --user <platform>:<id>` addresses a recipient: the request
     * body gets `{ [platform]: { [key]: id } }` (plus `thread` if enabled).
     * Omitted for platforms without direct-send support.
     */
    chatTarget?: {
        key: string;
        includeThread?: boolean;
    };
}
export declare const PLATFORM_REGISTRY: readonly PlatformDefinition[];
export declare function getPlatformDefinition(id: string): PlatformDefinition | undefined;
/** Placeholder env-var refs for `--yes` mode; the user fills the values into .env. */
export declare function getPlatformPlaceholders(id: string): Record<string, string>;
export {};
//# sourceMappingURL=registry.d.ts.map