/**
 * Session logger — NDJSON ログ書き出し専用モジュール
 *
 * WorkflowEngine のイベントを受け取り、NDJSON セッションログへ追記する責務を担う。
 */
import type { InteractiveMetadata } from './types.js';
import type { PromptLogRecord, NdjsonRecord } from '../../../shared/utils/index.js';
import type { WorkflowResumePointEntry, WorkflowStep, AgentResponse, WorkflowState } from '../../../core/models/index.js';
import type { JudgeStageEntry, PhasePromptParts, StepProviderInfo } from '../../../core/workflow/types.js';
export declare class SessionLogger {
    private readonly ndjsonLogPath;
    private readonly allowSensitiveData;
    private readonly phaseTracker;
    private readonly activeStepIterations;
    private readonly ndjsonRecords;
    private readonly promptRecords;
    private currentIteration;
    constructor(ndjsonLogPath: string, allowSensitiveData: boolean);
    writeInteractiveMetadata(meta: InteractiveMetadata): void;
    setIteration(iteration: number): void;
    onPhaseStart(step: WorkflowStep, phase: 1 | 2 | 3, phaseName: 'execute' | 'report' | 'judge', instruction: string, promptParts: PhasePromptParts, workflowStack: WorkflowResumePointEntry[] | undefined, phaseExecutionId?: string, iteration?: number): void;
    onPhaseComplete(step: WorkflowStep, phase: 1 | 2 | 3, phaseName: 'execute' | 'report' | 'judge', content: string, phaseStatus: string, phaseError: string | undefined, workflowStack: WorkflowResumePointEntry[] | undefined, phaseExecutionId?: string, iteration?: number): void;
    onJudgeStage(step: WorkflowStep, phase: 3, phaseName: 'judge', entry: JudgeStageEntry, workflowStack: WorkflowResumePointEntry[] | undefined, phaseExecutionId?: string, iteration?: number): void;
    onStepStart(step: WorkflowStep, iteration: number, instruction: string | undefined, workflowStack: WorkflowResumePointEntry[] | undefined, providerInfo?: StepProviderInfo): void;
    onStepComplete(step: WorkflowStep, response: AgentResponse, instruction: string, workflowStack: WorkflowResumePointEntry[] | undefined): void;
    onWorkflowComplete(state: WorkflowState): void;
    onWorkflowAbort(state: WorkflowState, reason: string): void;
    getNdjsonRecords(): NdjsonRecord[];
    getPromptRecords(): PromptLogRecord[];
    private appendRecord;
    private sanitizeText;
}
//# sourceMappingURL=sessionLogger.d.ts.map