import type { GroupPolicy } from "./types.base.js";
import type { DiscordConfig } from "./types.discord.js";
import type { GoogleChatConfig } from "./types.googlechat.js";
import type { IMessageConfig } from "./types.imessage.js";
import type { IrcConfig } from "./types.irc.js";
import type { MSTeamsConfig } from "./types.msteams.js";
import type { SignalConfig } from "./types.signal.js";
import type { SlackConfig } from "./types.slack.js";
import type { TelegramConfig } from "./types.telegram.js";
import type { WhatsAppConfig } from "./types.whatsapp.js";
export type ChannelHeartbeatVisibilityConfig = {
    /** Show HEARTBEAT_OK acknowledgments in chat (default: false). */
    showOk?: boolean;
    /** Show heartbeat alerts with actual content (default: true). */
    showAlerts?: boolean;
    /** Emit indicator events for UI status display (default: true). */
    useIndicator?: boolean;
};
export type ChannelHealthMonitorConfig = {
    /**
     * Enable channel-health-monitor restarts for this channel or account.
     * Inherits the global gateway setting when omitted.
     */
    enabled?: boolean;
};
export type ChannelDefaultsConfig = {
    groupPolicy?: GroupPolicy;
    /** Default heartbeat visibility for all channels. */
    heartbeat?: ChannelHeartbeatVisibilityConfig;
};
export type ChannelModelByChannelConfig = Record<string, Record<string, string>>;
/**
 * Base type for extension channel config sections.
 * Extensions can use this as a starting point for their channel config.
 */
export type ExtensionChannelConfig = {
    enabled?: boolean;
    allowFrom?: string | string[];
    /** Default delivery target for CLI --deliver when no explicit --reply-to is provided. */
    defaultTo?: string;
    /** Optional default account id when multiple accounts are configured. */
    defaultAccount?: string;
    dmPolicy?: string;
    groupPolicy?: GroupPolicy;
    healthMonitor?: ChannelHealthMonitorConfig;
    accounts?: Record<string, unknown>;
    [key: string]: unknown;
};
export type ChannelsConfig = {
    defaults?: ChannelDefaultsConfig;
    /** Map provider -> channel id -> model override. */
    modelByChannel?: ChannelModelByChannelConfig;
    whatsapp?: WhatsAppConfig;
    telegram?: TelegramConfig;
    discord?: DiscordConfig;
    irc?: IrcConfig;
    googlechat?: GoogleChatConfig;
    slack?: SlackConfig;
    signal?: SignalConfig;
    imessage?: IMessageConfig;
    msteams?: MSTeamsConfig;
    [key: string]: any;
};
