/**
 * runInferenceStep — shared utility for executing a single inference call
 * with timing, error capture, and optional timeout.
 *
 * Used by: pipeline-executor, benchmark-executor, benchmark.service,
 * inference-engine-adapter — eliminating duplicated timing/error patterns.
 */
export interface InferenceStepResult<T> {
    /** The inference output, or undefined if the call failed */
    readonly output: T | undefined;
    /** Wall-clock duration in ms (rounded to 2 decimals) */
    readonly durationMs: number;
    /** True if the call succeeded */
    readonly ok: boolean;
    /** Error message if the call failed */
    readonly error?: string;
}
/**
 * Execute an inference function with timing and error capture.
 *
 * @param fn - The inference call (e.g. `() => engine.infer(frame)`)
 * @param timeoutMs - Optional timeout in ms. If exceeded, rejects with timeout error.
 * @returns InferenceStepResult with output, timing, and error info
 */
export declare function runInferenceStep<T>(fn: () => Promise<T>, timeoutMs?: number): Promise<InferenceStepResult<T>>;
//# sourceMappingURL=run-inference-step.d.ts.map