import type { WorkflowResumePointEntry } from '../../../core/models/index.js';
import type { WorkflowEngine } from '../../../core/workflow/index.js';
import type { SessionLog } from '../../../infra/fs/index.js';
import { StreamDisplay } from '../../../shared/ui/index.js';
import type { ExceededInfo, WorkflowExecutionOptions } from './types.js';
export interface WorkflowExecutionEventState {
    abortReason?: string;
    exceededInfo?: ExceededInfo;
    lastStepContent?: string;
    lastStepName?: string;
    lastResumePoint?: WorkflowExecutionOptions['resumePoint'];
    currentIteration: number;
    sessionLog: SessionLog;
}
interface WorkflowExecutionEventBridgeDeps {
    engine: WorkflowEngine;
    workflowConfig: {
        name: string;
        steps: Array<{
            name: string;
        }>;
        maxSteps: number | 'infinite';
    };
    task: string;
    projectCwd: string;
    currentProvider: string;
    configuredModel: string | undefined;
    out: ReturnType<typeof import('./outputFns.js').createOutputFns>;
    prefixWriter: import('../../../shared/ui/TaskPrefixWriter.js').TaskPrefixWriter | undefined;
    displayRef: {
        current: StreamDisplay | null;
    };
    handlerRef: {
        current: ReturnType<StreamDisplay['createHandler']> | null;
    };
    providerEventLogger: ReturnType<typeof import('../../../shared/utils/providerEventLogger.js').createProviderEventLogger>;
    usageEventLogger: ReturnType<typeof import('../../../shared/utils/usageEventLogger.js').createUsageEventLogger>;
    analyticsEmitter: import('./analyticsEmitter.js').AnalyticsEmitter;
    sessionLogger: import('./sessionLogger.js').SessionLogger;
    runMetaManager: import('./runMeta.js').RunMetaManager;
    ndjsonLogPath: string;
    shouldNotifyWorkflowComplete: boolean;
    shouldNotifyWorkflowAbort: boolean;
    writeTraceReportOnce: ReturnType<typeof import('./traceReportWriter.js').createTraceReportWriter>;
    getCurrentWorkflowStack: () => WorkflowResumePointEntry[] | undefined;
    initialResumePoint: WorkflowExecutionOptions['resumePoint'];
    sessionLog: SessionLog;
}
export interface WorkflowExecutionEventBridge {
    state: WorkflowExecutionEventState;
    syncLatestResumePoint: () => void;
}
export declare function bindWorkflowExecutionEvents(deps: WorkflowExecutionEventBridgeDeps): WorkflowExecutionEventBridge;
export {};
//# sourceMappingURL=workflowExecutionEvents.d.ts.map