export class ID {
    /**
     * @param {number} client client id
     * @param {number} clock unique per client id, continuous number
     * @param {string} hash
     */
    constructor(client: number, clock: number, hash?: string);
    /**
     * Client id
     * @type {number}
     */
    client: number;
    /**
     * unique per client id, continuous number
     * @type {number}
     */
    clock: number;
    /**
     * @type {string}
     */
    hash: string;
    toString(): string;
}
export function compareIDs(a: ID | null, b: ID | null): boolean;
export function compareIDsByNameMode(a: ID | null, b: ID | null): boolean;
export function createID(client: number, clock: number, hash?: string): ID;
export function writeID(encoder: encoding.Encoder, id: ID): void;
export function readID(decoder: decoding.Decoder): ID;
export function findRootTypeKey(type: AbstractType<any>): string;
import * as encoding from "lib0/encoding";
import * as decoding from "lib0/decoding";
import { AbstractType } from "../types/AbstractType.js";
