import type { GenericMessage } from '../types/message-types.js';
import type { KeyValues } from '../types/query-types.js';
/**
 * Shared helpers for the replication log substrate.
 */
export declare class Replication {
    static readonly globalDomain = "";
    static protocolDomain(protocolUri: string): string;
    static permissionDomain(protocolUri: string): string;
    static encryptionDomain(protocolUri: string): string;
    static taggedCoreProtocolDomains(protocolUri: string, protocolsInScope?: ReadonlySet<string>): string[];
    static deriveStreamId(tenant: string): Promise<string>;
    static computeFingerprintScopes(message: GenericMessage, indexes: KeyValues): string[];
    static assertFingerprintScopesUntouched(persistedScopes: string[], message: GenericMessage, messageCid: string, newIndexes: KeyValues): void;
    private static scopeSetsMatch;
    private static throwFingerprintScopeMutation;
    private static isCoreProtocolUri;
    static hashMessageCid(messageCid: string): Promise<Uint8Array>;
    static emptyFingerprint(): Uint8Array;
    static xorFingerprint(fingerprint: Uint8Array, contribution: Uint8Array): Uint8Array;
    static fingerprintToHex(fingerprint: Uint8Array): string;
    static hexToFingerprint(hex: string): Uint8Array;
    static encodePositionKey(position: bigint): string;
}
//# sourceMappingURL=replication.d.ts.map