import { CapabilityAwareStructuredCaller } from '../../../agents/structured-caller.js';
import type { WorkflowConfig } from '../../../core/models/index.js';
import type { ResolvedObservabilityConfig } from '../../../core/models/config-types.js';
import { buildRunPaths } from '../../../core/workflow/run/run-paths.js';
import type { ProviderResolutionSource } from '../../../core/workflow/provider-options-trace.js';
import { type SessionLog } from '../../../infra/fs/index.js';
import { isQuietMode } from '../../../shared/context.js';
import { StreamDisplay } from '../../../shared/ui/index.js';
import { TaskPrefixWriter } from '../../../shared/ui/TaskPrefixWriter.js';
import { createProviderEventLogger } from '../../../shared/utils/providerEventLogger.js';
import { createUsageEventLogger } from '../../../shared/utils/usageEventLogger.js';
import { type OtelFoundationHandle } from '../../../infra/observability/otelFoundation.js';
import { AnalyticsEmitter } from './analyticsEmitter.js';
import { createOutputFns } from './outputFns.js';
import { RunMetaManager } from './runMeta.js';
import { SessionLogger } from './sessionLogger.js';
import { createTraceReportWriter } from './traceReportWriter.js';
import type { WorkflowExecutionOptions } from './types.js';
import { detectStepType } from './workflowExecutionUtils.js';
type DisplayStreamEvent = Parameters<ReturnType<StreamDisplay['createHandler']>>[0];
export interface WorkflowExecutionBootstrap {
    interactiveUserInput: boolean;
    prefixWriter: TaskPrefixWriter | undefined;
    out: ReturnType<typeof createOutputFns>;
    displayRef: {
        current: StreamDisplay | null;
    };
    handlerRef: {
        current: ReturnType<StreamDisplay['createHandler']> | null;
    };
    streamHandler: (event: DisplayStreamEvent) => void;
    isRetry: boolean;
    isWorktree: boolean;
    runSlug: string;
    runPaths: ReturnType<typeof buildRunPaths>;
    runMetaManager: RunMetaManager;
    sessionLog: SessionLog;
    ndjsonLogPath: string;
    sessionLogger: SessionLogger;
    sanitizeObservabilityText: (text: string) => string;
    shouldNotifyIterationLimit: boolean;
    shouldNotifyWorkflowComplete: boolean;
    shouldNotifyWorkflowAbort: boolean;
    currentProvider: WorkflowExecutionOptions['provider'];
    currentProviderSource: ProviderResolutionSource;
    configuredModel: string | undefined;
    configuredModelSource: ProviderResolutionSource;
    effectiveWorkflowConfig: WorkflowConfig;
    providerEventLogger: ReturnType<typeof createProviderEventLogger>;
    usageEventLogger: ReturnType<typeof createUsageEventLogger>;
    observability: ResolvedObservabilityConfig;
    observabilityHandle: OtelFoundationHandle;
    analyticsEmitter: AnalyticsEmitter;
    structuredCaller: CapabilityAwareStructuredCaller;
    savedSessions: Record<string, string>;
    sessionUpdateHandler: (persona: string, sessionId: string) => void;
    writeTraceReportOnce: ReturnType<typeof createTraceReportWriter>;
}
export declare function createWorkflowExecutionBootstrap(workflowConfig: WorkflowConfig, task: string, cwd: string, options: WorkflowExecutionOptions): Promise<WorkflowExecutionBootstrap>;
export { detectStepType, isQuietMode };
//# sourceMappingURL=workflowExecutionBootstrap.d.ts.map