/**
 * Type-safe accessors for Symbol.for() global state.
 *
 * These symbols survive bun --hot reloads because globalThis persists
 * across module re-evaluations. Using Symbol.for() ensures the same
 * symbol is returned regardless of which module instance creates it.
 *
 * Each symbol key maps to a specific type — this module centralises
 * the definitions so call-sites don't need casts.
 */
import type { OtelResponse } from './otel/otel';
/** Shutdown hook function type (duplicated here to avoid circular dep with app.ts) */
type ShutdownHook = () => Promise<void> | void;
declare const keys: {
    readonly originalProcessExit: symbol;
    readonly processExitProtected: symbol;
    readonly otelInstance: symbol;
    readonly originalConsole: symbol;
    readonly serverStarted: symbol;
    readonly localServicesLogged: symbol;
    readonly shutdownHooks: symbol;
    readonly s3Patched: symbol;
};
export { keys };
export declare function getGlobal<T>(key: symbol): T | undefined;
export declare function setGlobal<T>(key: symbol, value: T): void;
export declare const otel: {
    get: () => OtelResponse | undefined;
    set: (v: OtelResponse) => void;
};
export declare const originalProcessExit: {
    get: () => ((code?: number) => never) | undefined;
    set: (v: (code?: number) => never) => void;
};
export declare const processExitProtected: {
    get: () => boolean;
    set: (v: boolean) => void;
};
export declare const originalConsole: {
    get: () => Console | undefined;
    set: (v: Console) => void;
};
export declare const serverStarted: {
    get: () => boolean;
    set: (v: boolean) => void;
};
export declare const localServicesLogged: {
    get: () => boolean;
    set: (v: boolean) => void;
};
export declare const shutdownHooks: {
    get: () => ShutdownHook[];
};
export declare const s3Patched: {
    get: () => boolean;
    set: (v: boolean) => void;
};
//# sourceMappingURL=_globals.d.ts.map