import type { MeshClientRegistryBackend, RegisteredClient, RegisterResult } from './types';
export declare function destroyClientRedis(): void;
export declare class MeshClientRedisRegistry<TMeta> implements MeshClientRegistryBackend<TMeta> {
    private key;
    constructor(key: string);
    private clientsKey;
    private nodeSetKey;
    private nodeSetKeyPrefix;
    private encodeMetadata;
    private registerWithState;
    register(clientId: string, nodeId: number, metadata: TMeta, allowSupersede?: boolean): Promise<RegisterResult>;
    reserve(clientId: string, nodeId: number, metadata: TMeta, allowSupersede?: boolean): Promise<RegisterResult>;
    activate(clientId: string, nodeId: number, metadata: TMeta): Promise<boolean>;
    unregister(clientId: string, nodeId: number): Promise<boolean>;
    updateMetadata(clientId: string, nodeId: number, metadata: TMeta): Promise<boolean>;
    private tryParse;
    private toRegisteredClient;
    getClient(clientId: string): Promise<RegisteredClient<TMeta> | undefined>;
    listClients(): Promise<RegisteredClient<TMeta>[]>;
    listClientsForNode(nodeId: number): Promise<RegisteredClient<TMeta>[]>;
    cleanupNode(nodeId: number): Promise<RegisteredClient<TMeta>[]>;
}
//# sourceMappingURL=mesh-client-redis-registry.d.ts.map