import type { Config } from '@xopcai/xopc/config/schema.js';
import type { FeishuConfig } from '../schema/config-schema.js';
export interface ResolvedFeishuAccount {
    accountId: string;
    name?: string;
    enabled: boolean;
    configured: boolean;
    appId?: string;
    appSecret?: string;
    domain: 'feishu' | 'lark' | string;
    connectionMode: 'websocket' | 'webhook';
    webhookHost?: string;
    webhookPort?: number;
    webhookPath?: string;
    verificationToken?: string;
    encryptKey?: string;
    dmPolicy: 'pairing' | 'allowlist' | 'open' | 'disabled';
    groupPolicy: 'open' | 'disabled' | 'allowlist';
    allowFrom?: Array<string | number>;
    groupAllowFrom?: Array<string | number>;
    requireMention?: boolean;
    historyLimit: number;
    textChunkLimit: number;
    renderMode?: 'auto' | 'raw' | 'card';
    reactionNotifications?: 'off' | 'own' | 'all';
    /** Per-chat inbound debounce (ms); undefined = use channel plugin default. */
    inboundDebounceMs?: number;
    /** Opt-in: only `true` enables Feishu streaming (Thinking… + incremental updates). */
    streaming: boolean;
    blockStreamingCoalesce?: {
        enabled?: boolean;
        minChars?: number;
        idleMs?: number;
    };
    tools?: FeishuConfig['tools'];
    actions?: FeishuConfig['actions'];
    dynamicAgentCreation?: FeishuConfig['dynamicAgentCreation'];
}
export declare function listFeishuAccountIds(cfg: Config): string[];
export declare function resolveFeishuAccount(cfg: Config, accountId?: string | null): ResolvedFeishuAccount;
