import type { ChatContext } from '../llm/chat_context.js';
import { AgentTask } from '../voice/agent.js';
export interface TaskGroupResult {
    taskResults: Record<string, unknown>;
}
export interface TaskCompletedEvent {
    agentTask: AgentTask;
    taskId: string;
    result: unknown;
}
export interface TaskGroupOptions {
    summarizeChatCtx?: boolean;
    returnExceptions?: boolean;
    chatCtx?: ChatContext;
    onTaskCompleted?: (event: TaskCompletedEvent) => Promise<void>;
    preserveFunctionCallHistory?: boolean;
}
export declare class TaskGroup extends AgentTask<TaskGroupResult> {
    private _summarizeChatCtx;
    private _returnExceptions;
    private _visitedTasks;
    private _registeredFactories;
    private _taskCompletedCallback?;
    private _currentTask?;
    constructor(options?: TaskGroupOptions);
    add(task: () => AgentTask, { id, description }: {
        id: string;
        description: string;
    }): this;
    onEnter(): Promise<void>;
    private buildOutOfScopeTool;
}
//# sourceMappingURL=task_group.d.ts.map