import type { GroupPolicy } from "./types.base.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>; /** * 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; [key: string]: unknown; }; export interface ChannelsConfig { defaults?: ChannelDefaultsConfig; /** Map provider -> channel id -> model override. */ modelByChannel?: ChannelModelByChannelConfig; /** Channel sections are plugin-owned; concrete channel files augment this interface. */ // eslint-disable-next-line @typescript-eslint/no-explicit-any [key: string]: any; }