import type { MeshClientClaim, MeshClientClaimCommitResult, MeshClientListPage, MeshClientRecord, MeshClientRegistrationState, MeshClientRegistryBackend, RegisteredClient, RegisterResult } from './types';
export declare class MeshClientRegistry<TMeta> {
    private nodeId;
    private backend;
    private processId?;
    constructor(nodeId: number, backend: MeshClientRegistryBackend<TMeta>, processId?: string | undefined);
    /** @internal Keeps the public registry facade stable across service start. */
    setNodeId(nodeId: number): void;
    register(clientId: string, metadata: TMeta, allowSupersede: boolean, connectionId: string): Promise<RegisterResult>;
    reserve(clientId: string, metadata: TMeta, allowSupersede: boolean, connectionId: string): Promise<RegisterResult>;
    activate(clientId: string, metadata: TMeta, connectionId: string): Promise<boolean>;
    unregister(clientId: string, connectionId: string): Promise<boolean>;
    updateMetadata(clientId: string, metadata: TMeta, connectionId: string): Promise<boolean>;
    getClient(clientId: string): Promise<RegisteredClient<TMeta> | undefined>;
    /** @internal Exact/raw lookup for claim commit response-loss reconciliation. */
    getClientIncludingPending(clientId: string): Promise<MeshClientRecord<TMeta> | undefined>;
    listClients(): Promise<RegisteredClient<TMeta>[]>;
    listClientsForNode(nodeId?: number): Promise<RegisteredClient<TMeta>[]>;
    listClientsPage(cursor?: string): Promise<MeshClientListPage<TMeta>>;
    listClientsForNodePage(nodeId?: number, cursor?: string): Promise<MeshClientListPage<TMeta>>;
    cleanupNode(nodeId?: number): Promise<RegisteredClient<TMeta>[]>;
    refreshNode(): Promise<void>;
    claim(clientId: string, metadata: TMeta, state: MeshClientRegistrationState, allowSupersede: boolean, connectionId: string, operationId?: string): Promise<MeshClientClaim<TMeta> | undefined>;
    commitClaim(clientId: string, claimId: string): Promise<MeshClientClaimCommitResult | undefined>;
    removeClaimPrevious(clientId: string, claimId: string): Promise<boolean | undefined>;
    abortClaim(clientId: string, claimId: string): Promise<boolean | undefined>;
    removeClaimResult(clientId: string, claimId: string): Promise<boolean | undefined>;
}
//# sourceMappingURL=mesh-client-registry.d.ts.map