export class StructStore {
    /**
     * @type {Map<number,Array<GC|Item>>}
     */
    clients: Map<number, Array<GC | Item>>;
    /**
     * @type {null | { missing: Map<number, Map<string, boolean>>, update: Uint8Array }}
     */
    pendingStructs: {
        missing: Map<number, Map<string, boolean>>;
        update: Uint8Array;
    } | null;
    /**
     * @type {null | Uint8Array}
     */
    pendingDs: null | Uint8Array;
}
export function getStateVector(store: StructStore): Map<number, number>;
export function getState(store: StructStore, client: number): number;
export function integretyCheck(store: StructStore): void;
export function addStruct(store: StructStore, struct: GC | Item): void;
export function getFirstItemIndex(structs: Array<Item | GC | DeleteItem>, index: number): number;
export function masterFindIndexSS(structs: Array<Item | GC>, clock: number, hash: string): number;
export function findIndexSS(structs: Array<Item | GC>, clock: number): number;
export function find(store: StructStore, id: ID): GC | Item | null;
export function masterFind(store: StructStore, id: ID): GC | Item | null;
export function getItem(arg0: StructStore, arg1: ID): Item;
export function findIndexCleanStart(transaction: Transaction | null, structs: Array<Item | GC>, clock: number, hash?: string): number;
export function getItemCleanStart(transaction: Transaction | null, id: ID, store?: StructStore | null | undefined): Item;
export function getItemCleanEnd(transaction: Transaction | null, store: StructStore, id: ID): Item;
export function replaceStruct(store: StructStore, struct: GC | Item, newStruct: GC | Item): void;
export function iterateStructs(transaction: Transaction, structs: Array<Item | GC>, clockStart: number, len: number, f: (arg0: GC | Item) => void): void;
import { GC } from "../structs/GC.js";
import { Item } from "../structs/Item.js";
import { DeleteItem } from "./DeleteSet.js";
import { ID } from "./ID.js";
import { Transaction } from "./Transaction.js";
