export declare type RecordState = { id: I; data: T[]; }; export declare function setRecord(records: RecordState[], r: RecordState, keyComparator: (a: I, b: I) => number, currKeyIdx?: number): { idx: number; items: { id: I; data: T[]; }[]; }; export declare function clearRecord(records: RecordState[], key: I, keyComparator: (a: I, b: I) => number, currKeyIdx?: number): { idx: number; items: RecordState[]; }; export declare function clearRecords(records: RecordState[], keys: I[], keyComparator: (a: I, b: I) => number, currKeyIdx?: number): RecordState[]; export declare function removeRecord(records: RecordState[], key: I, keyComparator: (a: I, b: I) => number, currKeyIdx?: number): { idx: number; removedItem: RecordState | undefined; items: RecordState[]; }; export declare function removeRecords(records: RecordState[], keys: I[], keyComparator: (a: I, b: I) => number, currKeyIdx?: number): { items: RecordState[]; removedItems: RecordState[]; idx: number; }; export declare function getRecordByKey(records: RecordState[], key: I, keyComparator: (a: I, b: I) => number, currKeyIdx?: number): RecordState | undefined; export declare function getRecordsByKeys(records: RecordState[], keys: I[], keyComparator: (a: I, b: I) => number): RecordState[]; export declare function getElementByT(records: RecordState[], t: B, selectKey: (t: B) => I, keyComparator: (a: I, b: I) => number, tComparator: (a: B, b: B) => number): T | undefined; export declare function getElementsByTs(records: RecordState[], ts: B[], selectKey: (t: B) => I, keyComparator: (a: I, b: I) => number, tComparator: (a: B, b: B) => number): T[]; export declare function updateRecord(records: RecordState[], r: RecordState, keyComparator: (a: I, b: I) => number, merger: (a: RecordState, b: RecordState) => RecordState, currKeyIdx?: number): { idx: number; items: RecordState[]; }; export declare function upsertRecord(records: RecordState[], r: RecordState, keyComparator: (a: I, b: I) => number, merger: (a: RecordState, b: RecordState) => RecordState, currKeyIdx?: number): { idx: number; items: RecordState[]; }; export declare function mergeRecord(records: RecordState[], r: RecordState, keyComparator: (a: I, b: I) => number, tComparator: (a: B, b: B) => number, upsert?: boolean, currKeyIdx?: number): { idx: number; items: RecordState[]; }; export declare function mergeElement(records: RecordState[], t: T, selectKey: (t: B) => I, keyComparator: (a: I, b: I) => number, tComparator: (a: B, b: B) => number, upsert?: boolean): RecordState[]; export declare function mergeElements(records: RecordState[], data: T[], selectKey: (t: B) => I, keyComparator: (a: I, b: I) => number, tComparator: (a: B, b: B) => number, upsert?: boolean): RecordState[]; export declare function removeFromRecord(records: RecordState[], r: RecordState, keyComparator: (a: I, b: I) => number, tComparator: (a: B, b: B) => number, currKeyIdx?: number): { idx: number; items: RecordState[]; }; export declare function removeElement(records: RecordState[], t: B, selectKey: (t: B) => I, keyComparator: (a: I, b: I) => number, tComparator: (a: B, b: B) => number): RecordState[]; export declare function removeElements(records: RecordState[], data: B[], selectKey: (t: B) => I, keyComparator: (a: I, b: I) => number, tComparator: (a: B, b: B) => number): RecordState[];