import { PowerManager } from './manager.js'; import { type PowerPlatformSeam } from './types.js'; import type { RuntimeEventBus } from '../runtime/events/index.js'; export interface RuntimePowerWiringInput { readonly readConfig: (key: string) => unknown; readonly writeConfig: (key: string, value: boolean) => void; /** Live config subscription (ConfigManager.subscribe shape) so power.keepAwake changes apply live. */ readonly subscribeConfig?: ((key: string, cb: (newValue: unknown) => void) => () => void) | undefined; readonly runtimeBus?: RuntimeEventBus | null | undefined; /** Checkpoint hook for PrepareForSleep(true), checkpoint what's checkpointable. */ readonly sleepCheckpoint?: (() => void | Promise) | undefined; /** Catch-up hooks for wake: re-arm timers, reconnect, deliver missed receipts. */ readonly wakeCatchUp?: ReadonlyArray<() => void | Promise> | undefined; /** Injectable seam override (tests / future macOS IOKit wiring). */ readonly seam?: PowerPlatformSeam | undefined; } /** * The real host power seam for the current OS: Linux logind (which spawns the * systemd-inhibit inhibitor children and the read-only sleep-edge dbus-monitor * watcher) or the honest unavailable seam elsewhere. Spawning a real * sleep-edge watcher is a host-level side effect, so only the standalone * daemon opts into it, the generic runtime-services factory defaults to the * unavailable seam (no spawn) for test determinism, exactly like the * observe-external-agents host scan. */ export declare function createHostPowerSeam(): PowerPlatformSeam; /** Compose and start the runtime's PowerManager. Never throws; never blocks startup. */ export declare function wireRuntimePower(input: RuntimePowerWiringInput): PowerManager; //# sourceMappingURL=runtime-wiring.d.ts.map