import type { WorkflowStep, WorkflowState, WorkflowMaxSteps, WorkflowResumePointEntry } from '../../models/types.js';
import type { OptionsBuilder } from './OptionsBuilder.js';
import type { StepExecutor } from './StepExecutor.js';
import type { WorkflowEngineOptions, PhaseName, PhasePromptParts } from '../types.js';
import type { RuntimeStepResolution, StepRunResult } from '../types.js';
export interface TeamLeaderRunnerDeps {
    readonly optionsBuilder: OptionsBuilder;
    readonly stepExecutor: StepExecutor;
    readonly engineOptions: WorkflowEngineOptions;
    readonly getCwd: () => string;
    readonly getWorkflowName: () => string;
    readonly getInteractive: () => boolean;
    readonly observabilityEnabled: boolean;
    readonly observabilityRunId?: string;
    readonly sanitizeObservabilityText?: (text: string) => string;
    readonly getCurrentWorkflowStack?: () => WorkflowResumePointEntry[] | undefined;
    readonly onPhaseStart?: (step: WorkflowStep, phase: 1 | 2 | 3, phaseName: PhaseName, instruction: string, promptParts: PhasePromptParts, phaseExecutionId?: string, iteration?: number) => void;
    readonly onPhaseComplete?: (step: WorkflowStep, phase: 1 | 2 | 3, phaseName: PhaseName, content: string, status: string, error?: string, phaseExecutionId?: string, iteration?: number) => void;
}
export declare class TeamLeaderRunner {
    private readonly deps;
    constructor(deps: TeamLeaderRunnerDeps);
    runTeamLeaderStep(step: WorkflowStep, state: WorkflowState, task: string, maxSteps: WorkflowMaxSteps, updatePersonaSession: (persona: string, sessionId: string | undefined) => void, runtime?: RuntimeStepResolution): Promise<StepRunResult>;
    private runSinglePart;
}
//# sourceMappingURL=TeamLeaderRunner.d.ts.map