//#region src/server/runtime/BrowserFleetRouter.d.ts interface BrowserFleetWorker { id: string; endpoint?: string; weight?: number; accepting?: boolean; } interface BrowserFleetLease { sessionId: string; workerId: string; fencingToken: string; topologyVersion: number; expiresAt: number; } interface BrowserFleetLeaseAcquireRequest { sessionId: string; preferredWorkerId: string; activeWorkerIds: ReadonlySet; topologyVersion: number; ttlMs: number; now: number; } interface BrowserFleetLeaseStoreStats { activeLeases: number; maxLeases: number | null; rejectedLeases: number; } interface BrowserFleetLeaseStore { get(sessionId: string, now: number): Promise; acquire(request: BrowserFleetLeaseAcquireRequest): Promise; renew(sessionId: string, fencingToken: string, ttlMs: number, now: number): Promise; release(sessionId: string, fencingToken: string): Promise; getStats?(now?: number): BrowserFleetLeaseStoreStats; } interface BrowserFleetRouterOptions { localWorkerId: string; workers?: readonly BrowserFleetWorker[]; virtualNodes?: number; leaseTtlMs?: number; } interface BrowserFleetRoute extends BrowserFleetLease { local: boolean; endpoint: string | null; } interface BrowserFleetStats { localWorkerId: string; topologyVersion: number; workers: number; acceptingWorkers: number; ringPoints: number; virtualNodes: number; leaseTtlMs: number; leaseRenewalIntervalMs: number; locallyOwnedRoutes: number; activeLeaseKeepAlives: number; leaseRenewalCount: number; leaseLossCount: number; leaseStore: BrowserFleetLeaseStoreStats | null; } interface BrowserFleetLeaseRunResult { value: T; route: BrowserFleetRoute; } declare function configureBrowserFleetLeaseStore(store: BrowserFleetLeaseStore): void; declare function hashBrowserFleetKey(value: string): number; declare class BrowserFleetLeaseError extends Error { readonly code: 'BROWSER_FLEET_LEASE_CAPACITY' | 'BROWSER_FLEET_WRONG_WORKER' | 'BROWSER_FLEET_LEASE_LOST' | 'BROWSER_FLEET_WORKER_DRAINING'; readonly targetWorkerId: string | null; readonly targetEndpoint: string | null; readonly fencingToken: string | null; readonly retryAfterMs: number | null; constructor(message: string, code: 'BROWSER_FLEET_LEASE_CAPACITY' | 'BROWSER_FLEET_WRONG_WORKER' | 'BROWSER_FLEET_LEASE_LOST' | 'BROWSER_FLEET_WORKER_DRAINING', targetWorkerId?: string | null, targetEndpoint?: string | null, fencingToken?: string | null, retryAfterMs?: number | null); } declare class InMemoryBrowserFleetLeaseStore implements BrowserFleetLeaseStore { private readonly maxLeases; private readonly leases; private nextFencingToken; private rejectedLeases; constructor(maxLeases?: number); get(sessionId: string, now: number): Promise; acquire(request: BrowserFleetLeaseAcquireRequest): Promise; renew(sessionId: string, fencingToken: string, ttlMs: number, now: number): Promise; release(sessionId: string, fencingToken: string): Promise; getStats(now?: number): BrowserFleetLeaseStoreStats; private evictExpired; } declare class BrowserFleetRouter { private readonly leaseStore; private readonly now; private readonly localWorkerId; private readonly virtualNodes; private readonly leaseTtlMs; private readonly workers; private readonly locallyOwnedRoutes; private ring; private activeWorkerIds; private acceptingWorkerIds; private topologyVersion; private activeLeaseKeepAlives; private leaseRenewalCount; private leaseLossCount; constructor(options: BrowserFleetRouterOptions, leaseStore?: BrowserFleetLeaseStore, now?: () => number); setWorkers(workers: readonly BrowserFleetWorker[]): void; getAssignedWorker(sessionId: string): BrowserFleetWorker; routeSession(sessionId: string): Promise; claimLocalSession(sessionId: string): Promise; admitLocalSession(sessionId: string): Promise; assertLocal(route: BrowserFleetRoute): void; renewSession(route: BrowserFleetRoute): Promise; runWithLeaseKeepAlive(route: BrowserFleetRoute, run: () => Promise): Promise>; releaseSession(route: Pick): Promise; releaseLocalSession(sessionId: string): Promise; getStats(): BrowserFleetStats; private getLeaseRenewalIntervalMs; private leaseLostError; } //#endregion export { type BrowserFleetLease, type BrowserFleetLeaseAcquireRequest, BrowserFleetLeaseError, type BrowserFleetLeaseStore, type BrowserFleetLeaseStoreStats, type BrowserFleetRoute, BrowserFleetRouter, type BrowserFleetRouterOptions, type BrowserFleetStats, type BrowserFleetWorker, InMemoryBrowserFleetLeaseStore, configureBrowserFleetLeaseStore, hashBrowserFleetKey };