export declare const MAX_CONCURRENT_BINDING_SETUPS = 4; export declare const BINDING_SETUP_RACE_ATTEMPTS = 7; export declare function bindingRetryDelayMs(attempt: number, code?: string): number; export declare function shouldRetryBindingSetup(code: string | undefined, attempt: number): boolean; export declare function isRetryableBindingSetupFailure(code: string | undefined): boolean; export interface BindingSetupRequest { readonly fileId: string; localFilePath: string; cancelled: boolean; attempt: number; } export type BindingSetupOutcome = 'settled' | { retryAfterMs: number; }; export type RetryTimer = (run: () => void, delayMs: number) => () => void; export declare class BindingSetupSlots { #private; readonly max: number; constructor(max?: number); get active(): number; get peak(): number; tryAcquire(): boolean; release(): void; waitForSlot(notify: () => void): void; stopWaiting(notify: () => void): void; } export declare function bindingSetupSlotsFor(client: object): BindingSetupSlots; export interface BindingSetupQueueOptions { slots: BindingSetupSlots; run: (request: BindingSetupRequest) => Promise; scheduleRetry?: RetryTimer; } export declare class BindingSetupQueue { #private; constructor({ slots, run, scheduleRetry }: BindingSetupQueueOptions); get queuedCount(): number; get pendingCount(): number; has(fileId: string): boolean; get(fileId: string): BindingSetupRequest | undefined; enqueue(fileId: string, localFilePath: string): boolean; updatePath(fileId: string, localFilePath: string): void; cancel(fileId: string): void; cancelAll(): void; } //# sourceMappingURL=binding-setup.d.ts.map