import type { WorkflowConfig, WorkflowCallStep, WorkflowMaxSteps, WorkflowResumePointEntry, WorkflowState } from '../../models/types.js';
import type { PersonaProviderEntry } from '../../models/config-types.js';
import type { RunPaths } from '../run/run-paths.js';
import type { WorkflowAbortKind, WorkflowCallChildEngine, WorkflowCallResolver, WorkflowEngineOptions, WorkflowSharedRuntimeState } from '../types.js';
export declare function applyWorkflowCallOverridesToPersonaProviders(personaProviders: Record<string, PersonaProviderEntry> | undefined, overrides: WorkflowCallStep['overrides']): Record<string, PersonaProviderEntry> | undefined;
interface WorkflowCallExecutorDeps {
    getConfig: () => WorkflowConfig;
    getOptions: () => WorkflowEngineOptions;
    getMaxSteps: () => WorkflowMaxSteps;
    updateMaxSteps: (maxSteps: WorkflowMaxSteps) => void;
    getCwd: () => string;
    projectCwd: string;
    task: string;
    sharedRuntime: WorkflowSharedRuntimeState;
    resumeStackPrefix: WorkflowResumePointEntry[];
    runPaths: RunPaths;
    resolveWorkflowCall: WorkflowCallResolver;
    createEngine: (config: WorkflowConfig, cwd: string, task: string, options: WorkflowEngineOptions) => WorkflowCallChildEngine;
    emit: (event: string, ...args: unknown[]) => void;
    state: {
        iteration: number;
        personaSessions: Map<string, string>;
    };
    setActiveResumePoint: (step: WorkflowCallStep, iteration: number) => void;
}
interface ExecuteWorkflowCallRequest {
    step: WorkflowCallStep;
    childWorkflow: WorkflowConfig;
    childProviderInfo: {
        provider: WorkflowEngineOptions['provider'];
        model: string | undefined;
    };
    parentProviderOptions: WorkflowEngineOptions['providerOptions'];
    personaProviders: WorkflowEngineOptions['personaProviders'];
}
export type WorkflowCallExecutionResult = WorkflowState & {
    abortKind?: WorkflowAbortKind;
    abortReason?: string;
    returnValue?: string;
};
export declare class WorkflowCallExecutor {
    private readonly deps;
    constructor(deps: WorkflowCallExecutorDeps);
    private buildWorkflowCallNamespace;
    private resolveChildResumeStartStep;
    private resolveChildResumePoint;
    private relayChildEvents;
    private syncStateFromChild;
    execute(request: ExecuteWorkflowCallRequest): Promise<WorkflowCallExecutionResult>;
}
export {};
//# sourceMappingURL=WorkflowCallExecutor.d.ts.map