export declare type RecordState = { id: I; data: T[]; }; export declare function clearRecord(records: RecordState[], key: I, keyComparator: (a: I, b: I) => number, currKeyIdx?: number): RecordState[]; export declare function clearRecords(records: RecordState[], keys: I[], keyComparator: (a: I, b: I) => number): RecordState[]; 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 upsertElement(records: RecordState[], t: T, selectKey: (t: B) => I, keyComparator: (a: I, b: I) => number, tComparator: (a: B, b: B) => number): RecordState[]; export declare function upsertElements(records: RecordState[], data: T[], selectKey: (t: B) => I, keyComparator: (a: I, b: I) => number, tComparator: (a: B, b: B) => number): RecordState[]; export declare function removeElement(records: RecordState[], t: T, selectKey: (t: B) => I, keyComparator: (a: I, b: I) => number, tComparator: (a: B, b: B) => number): RecordState[]; export declare function removeElements(records: RecordState[], data: T[], selectKey: (t: B) => I, keyComparator: (a: I, b: I) => number, tComparator: (a: B, b: B) => number): RecordState[];