export interface ShutdownProcess { on(event: string, listener: (...args: unknown[]) => void): void; removeListener(event: string, listener: (...args: unknown[]) => void): void; exit(code?: number): never; env: Record; stdout: { writable?: boolean; isTTY?: boolean; write(s: string): boolean; }; stderr: { writable?: boolean; write(s: string): boolean; }; } export type CleanupFn = () => void | Promise; export type Deregister = () => void; export declare class ShutdownManager { private proc; private shuttingDown; private sigintState; private triggeredBySigterm; private exitHandlerRan; private lockPaths; private registry; private controller; private contextStorage; private fallbackContext; constructor(proc?: ShutdownProcess); get isShuttingDown(): boolean; get signal(): AbortSignal; private sigintHandler; private sigtermHandler; private get currentContext(); private getTimeoutMs; install(): void; private installExitHandler; reset(): void; register(name: string, cleanup: CleanupFn, opts?: { priority?: 'critical'; }): Deregister; registerLockOwnership(lockFilePath: string): void; releaseLockOwnership(lockFilePath?: string): void; shutdown(exitCode?: number): Promise; withPrompt(fn: () => Promise): Promise; withResource(name: string, cleanup: CleanupFn, fn: () => T | Promise): Promise; withContext(message: string | (() => string), fn: () => T | Promise): Promise; } export declare const shutdown: ShutdownManager; //# sourceMappingURL=shutdown.d.ts.map