import type { IChatClient } from '../core/chatClient';
import { type CouncilMember, type CouncilMode, type CouncilResult } from './modelCouncil';
export interface CouncilForChatOptions {
    /** Models to dispatch to in parallel. */
    members: CouncilMember[];
    mode: CouncilMode;
    /** Required for debate / arbiter modes. */
    arbiter?: string;
    perMemberTimeoutMs?: number;
}
export type CouncilClientFactory = (model: string) => Pick<IChatClient, 'chat'>;
/**
 * Run a model council against a single user prompt using the supplied
 * chat client factory. Each member spins up its own client (or reuses one
 * from the factory) so the parallel dispatch is genuine.
 */
export declare function runCouncilForChat(prompt: string, options: CouncilForChatOptions, factory: CouncilClientFactory): Promise<CouncilResult>;
//# sourceMappingURL=councilAdapter.d.ts.map