import type { LaunchctlResult, LaunchctlRunner } from "./launchd.js"; export interface PollOptions { readonly timeoutMs: number; readonly intervalMs: number; } interface LifecyclePollDeps { readonly runner: LaunchctlRunner; readonly now: () => number; readonly sleep: (ms: number) => Promise; readonly isAlive: (pid: number) => boolean; } export type UnloadLaunchdServiceResult = { readonly ok: true; } | { readonly ok: false; readonly failure: LaunchctlResult; }; export declare function unloadLaunchdService(label: string, service: { readonly loaded: boolean; readonly pid?: number; }, ownedPids: readonly number[], deps: LifecyclePollDeps, uid: number, poll: PollOptions, beforeLoadedBootout?: () => Promise): Promise; export declare function pollUntil(deps: Pick, options: PollOptions, condition: () => Promise): Promise; export declare function lifecycleFailure(result: LaunchctlResult, detail: string): LaunchctlResult; export declare function uniquePids(values: readonly (number | undefined)[]): number[]; export declare function maintenanceErrorMessage(error: unknown): string; export {}; //# sourceMappingURL=background-lifecycle-utils.d.ts.map