export declare enum Platform {
    LOCAL = "local",
    TELEGRAM = "telegram",
    DISCORD = "discord",
    WHATSAPP = "whatsapp",
    SLACK = "slack",
    SIGNAL = "signal",
    MATTERMOST = "mattermost",
    MATRIX = "matrix",
    EMAIL = "email",
    WEBHOOK = "webhook",
    DINGTALK = "dingtalk",
    FEISHU = "feishu",
    WECOM = "wecom",
    WEIXIN = "weixin",
    QQBOT = "qqbot",
    YUANBAO = "yuanbao",
    API_SERVER = "api_server"
}
export interface HomeChannel {
    platform: Platform;
    chatId: string;
    name: string;
    threadId?: string;
}
export interface PlatformConfig {
    enabled: boolean;
    token?: string;
    apiKey?: string;
    homeChannel?: HomeChannel;
    replyToMode: 'off' | 'first' | 'all';
    extra: Record<string, any>;
}
export interface StreamingConfig {
    enabled: boolean;
    transport: 'edit' | 'draft' | 'off';
    editInterval: number;
    bufferThreshold: number;
    cursor: string;
}
export interface SessionResetPolicy {
    mode: 'daily' | 'idle' | 'both' | 'none';
    atHour: number;
    idleMinutes: number;
    notify: boolean;
}
export interface GatewayConfig {
    platforms: Partial<Record<Platform, PlatformConfig>>;
    defaultResetPolicy: SessionResetPolicy;
    streaming: StreamingConfig;
    sessionsDir: string;
    groupSessionsPerUser: boolean;
    threadSessionsPerUser: boolean;
    sessionStoreMaxAgeDays: number;
}
export declare function defaultGatewayConfig(): GatewayConfig;
export declare function loadGatewayConfig(): GatewayConfig;
export declare function getConnectedPlatforms(config: GatewayConfig): Platform[];
//# sourceMappingURL=config.d.ts.map