/**
 * Phase Timing Context
 *
 * Module-level singleton that provides phase timing recording
 * to executeNode() without changing its public API.
 *
 * The worker calls setPhaseTimingContext() once after DI init.
 * Node helpers call recordPhaseStart/End() during graph execution.
 * Errors are swallowed so timing never blocks graph execution.
 */
import type { IPhaseTimingRepository } from '../../../../application/ports/output/agents/phase-timing-repository.interface.js';
/**
 * Set the phase timing context. Called once by the worker after DI init.
 */
export declare function setPhaseTimingContext(runId: string, repository: IPhaseTimingRepository): void;
/**
 * Clear the phase timing context. Useful for testing.
 */
export declare function clearPhaseTimingContext(): void;
/**
 * Record the start of a phase. Returns the timing record ID (for later update)
 * or null if context is not set or save fails.
 */
export declare function recordPhaseStart(phase: string): Promise<string | null>;
/**
 * Record the end of a phase. Updates the timing record with completedAt and durationMs.
 * No-op if timingId is null (phase start was skipped or failed).
 */
export declare function recordPhaseEnd(timingId: string | null, durationMs: number): Promise<void>;
//# sourceMappingURL=phase-timing-context.d.ts.map