/**
 * Channel config adapter factories.
 */
import type { Config } from '../config/schema.js';
import type { ChannelConfigAdapter } from './plugin-types.js';
export declare function createTopLevelChannelConfigAdapter<ResolvedAccount>(params: {
    sectionKey: string;
    resolveAccount: (cfg: Config) => ResolvedAccount;
    deleteMode?: 'remove-section' | 'clear-fields';
    resolveAllowFrom?: (account: ResolvedAccount) => Array<string | number> | undefined;
    formatAllowFrom?: (allowFrom: Array<string | number>) => string[];
}): ChannelConfigAdapter<ResolvedAccount>;
export declare function createScopedChannelConfigAdapter<ResolvedAccount>(params: {
    sectionKey: string;
    listAccountIds: (cfg: Config) => string[];
    resolveAccount: (cfg: Config, accountId?: string | null) => ResolvedAccount;
    defaultAccountId: (cfg: Config) => string;
    resolveAllowFrom: (account: ResolvedAccount) => Array<string | number> | undefined;
    formatAllowFrom: (allowFrom: Array<string | number>) => string[];
}): ChannelConfigAdapter<ResolvedAccount>;
export declare function createHybridChannelConfigAdapter<ResolvedAccount>(params: {
    sectionKey: string;
    listAccountIds: (cfg: Config) => string[];
    resolveAccount: (cfg: Config, accountId?: string | null) => ResolvedAccount;
    resolveAllowFrom?: (account: ResolvedAccount) => Array<string | number> | undefined;
    formatAllowFrom?: (allowFrom: Array<string | number>) => string[];
}): ChannelConfigAdapter<ResolvedAccount>;
