import type { Logger } from 'pino';
import { type JobContext } from './job.js';
export declare const DEFAULT_SESSION_END_TIMEOUT: number;
type SessionEndCallback = (ctx: JobContext) => unknown;
type ShutdownCallback = () => Promise<void>;
export declare function validateSessionEndTimeout(timeout: number): number;
export declare function waitForEntrypointShutdown(entrypointPromise: Promise<unknown>, logger: Logger): Promise<void>;
export declare function finalizeSession(ctx: JobContext, onSessionEnd: SessionEndCallback | undefined, sessionEndTimeout: number, logger: Logger): Promise<void>;
export declare function runShutdownCallbacks(callbacks: readonly ShutdownCallback[], logger: Logger): Promise<void>;
export declare function flushJobLogs(logger: Logger): Promise<void>;
/** Export the last metrics of the job. Run it after everything that can still record one. */
export declare function flushJobMetrics(logger: Logger): Promise<void>;
export {};
//# sourceMappingURL=job_lifecycle.d.ts.map