/**
 * Agent Teams
 *
 * Coordinates multiple agent instances working together on tasks.
 * Supports auto, in-process, and tmux teammate modes.
 */
export type TeammateMode = 'auto' | 'in-process' | 'tmux';
export interface TeamConfig {
    mode: TeammateMode;
    maxTeammates: number;
    sharedTaskList: boolean;
}
export type TeammateStatus = 'idle' | 'busy' | 'offline';
export interface TeammateConfig {
    mode?: TeammateMode;
    capabilities?: string[];
}
export interface TeammateInfo {
    name: string;
    config: TeammateConfig;
    status: TeammateStatus;
    assignedTasks: string[];
}
export interface TeamMessage {
    from: string;
    to: string | 'all';
    content: string;
    timestamp: number;
}
export interface SharedContext {
    tasks: Map<string, {
        assignedTo: string;
        status: string;
    }>;
    teammates: string[];
    messages: TeamMessage[];
}
export declare class AgentTeam {
    private teammates;
    private messageQueue;
    private config;
    constructor(config?: Partial<TeamConfig>);
    addTeammate(name: string, config?: TeammateConfig): boolean;
    removeTeammate(name: string): boolean;
    getTeammates(): TeammateInfo[];
    delegateTask(taskId: string, teammateName: string): boolean;
    broadcastMessage(message: string, from?: string): void;
    sendMessage(from: string, to: string, content: string): void;
    getMessages(forTeammate: string): TeamMessage[];
    getSharedContext(): SharedContext;
    getConfig(): TeamConfig;
}
export declare function getAgentTeam(config?: Partial<TeamConfig>): AgentTeam;
export declare function resetAgentTeam(): void;
