/** Per-backend install mutex — Playwright and CloakBrowser may install in parallel. */
export type BrowserInstallKind = 'playwright' | 'cloakbrowser';
export type BrowserInstallLock = {
    readonly signal: AbortSignal;
    release: () => void;
};
export declare function acquireBrowserInstallLock(kind: BrowserInstallKind): BrowserInstallLock | null;
/** User-initiated cancel — aborts the in-flight install for this kind. */
export declare function cancelBrowserInstall(kind: BrowserInstallKind): boolean;
export declare function isBrowserInstallRunning(kind: BrowserInstallKind): boolean;
/** Test helper — reset lock state between unit tests. */
export declare function resetBrowserInstallLockForTests(): void;
