import { type ClientCapability, type ClientKind, type ClientReconcilerLease } from './coordination'; export declare const DEFAULT_CLIENT_RECONCILER_HEARTBEAT_TTL_MS = 45000; export declare const DEFAULT_CLIENT_RECONCILER_LEASE_TTL_MS = 30000; export interface ClientReconcilerCoordinatorOptions { redisUrl?: string; now?: () => Date; heartbeatTtlMs?: number; leaseTtlMs?: number; namespace?: string; } export interface UpsertClientCapabilityInput { clientId: string; kind: ClientKind; user: string; canCoordinateClientOwnedThread?: boolean; canRunAgent?: boolean; workspaces?: string[]; heartbeatAt?: string; } export interface ActivateClientReconcilerLeaseInput { thread: string; ownerUser: string; requesterClientId?: string; } export interface ReleaseClientReconcilerLeaseInput { thread: string; ownerUser: string; clientId: string; } export declare class ClientReconcilerCoordinator { private readonly now; private readonly heartbeatTtlMs; private readonly leaseTtlMs; private readonly backend; constructor(options?: ClientReconcilerCoordinatorOptions); upsertClientCapability(input: UpsertClientCapabilityInput): Promise; listClientCapabilities(user: string): Promise; activate(input: ActivateClientReconcilerLeaseInput): Promise; getLease(thread: string): Promise; releaseLease(input: ReleaseClientReconcilerLeaseInput): Promise; close(): Promise; }