import type { SymiConfig } from "../config/config.js";
import type { ChannelCapabilities, ChannelCommandAdapter, ChannelElevatedAdapter, ChannelGroupAdapter, ChannelId, ChannelAgentPromptAdapter, ChannelMentionAdapter, ChannelThreadingAdapter } from "./plugins/types.js";
export type ChannelDock = {
    id: ChannelId;
    capabilities: ChannelCapabilities;
    commands?: ChannelCommandAdapter;
    outbound?: {
        textChunkLimit?: number;
    };
    streaming?: ChannelDockStreaming;
    elevated?: ChannelElevatedAdapter;
    config?: {
        resolveAllowFrom?: (params: {
            cfg: SymiConfig;
            accountId?: string | null;
        }) => Array<string | number> | undefined;
        formatAllowFrom?: (params: {
            cfg: SymiConfig;
            accountId?: string | null;
            allowFrom: Array<string | number>;
        }) => string[];
        resolveDefaultTo?: (params: {
            cfg: SymiConfig;
            accountId?: string | null;
        }) => string | undefined;
    };
    groups?: ChannelGroupAdapter;
    mentions?: ChannelMentionAdapter;
    threading?: ChannelThreadingAdapter;
    agentPrompt?: ChannelAgentPromptAdapter;
};
type ChannelDockStreaming = {
    blockStreamingCoalesceDefaults?: {
        minChars?: number;
        idleMs?: number;
    };
};
export declare function listChannelDocks(): ChannelDock[];
export declare function getChannelDock(id: ChannelId): ChannelDock | undefined;
export {};
