import { Layer } from 'effect'; import { LeadershipService } from '../../leadership/index.js'; export type BrowserLockManager = { request: (name: string, options: { readonly mode: 'exclusive'; readonly signal: AbortSignal; }, callback: (lock: unknown) => Promise) => Promise; }; export type BrowserDocument = { readonly visibilityState: string; addEventListener: (type: string, listener: () => void) => void; removeEventListener: (type: string, listener: () => void) => void; }; export type WebLockLeadershipEnvironment = { readonly locks: BrowserLockManager; readonly document: BrowserDocument; }; export type WebLockLeadershipOptions = { readonly releaseWhen?: 'hidden' | 'frozen'; }; /** @internal Story and test seam; deliberately omitted from the public barrel. */ export declare const webLockLeadershipWithEnvironment: (environment: WebLockLeadershipEnvironment, options?: WebLockLeadershipOptions) => Layer.Layer; export declare const webLockLeadership: (options?: WebLockLeadershipOptions) => Layer.Layer; //# sourceMappingURL=web-locks.d.ts.map