import type { Observability } from "@opengeni/observability"; export type ApiFatalEvent = "startup_failure" | "unhandled_rejection" | "uncaught_exception"; export type ApiFatalPhase = "startup" | "running"; export type ApiFatalReasonKind = "bigint" | "boolean" | "error" | "function" | "null" | "number" | "object" | "string" | "symbol" | "undefined"; type ApiFatalObservability = Pick; type ApiFatalProcess = { on: (event: "unhandledRejection" | "uncaughtException", listener: (reason: unknown) => void) => void; off: (event: "unhandledRejection" | "uncaughtException", listener: (reason: unknown) => void) => void; exit: (code: number) => void; }; export type ApiFatalProcessBoundaryOptions = { process?: ApiFatalProcess; observability?: ApiFatalObservability; flushTimeoutMs?: number; correlationId?: () => string; fallbackLog?: (message: string) => void; }; export type ApiFatalProcessBoundary = { attachObservability: (observability: ApiFatalObservability) => void; markRunning: () => void; reportStartupFailure: (reason: unknown) => Promise; dispose: () => void; }; export declare function installApiFatalProcessBoundary(options?: ApiFatalProcessBoundaryOptions): ApiFatalProcessBoundary; export {};