export type Bucket = { offset: number; elements: Array; /** * positive: missing space * negative: too much space */ missingSpace: number; add: Array; }; export declare function assureBucketExists(buckets: Array>, bucketIndex: number): void; export declare function resizeSortedBucketsSpace(buckets: Array>, oldSize: number, newSize: number): void; /** * @returns true iff a call to @function updateSortedBucketsAllocation is necassary */ export declare function addToSortedBuckets(buckets: Array>, bucketIndex: number, element: E, activateElement: (element: E, bucket: Bucket, index: number) => void): boolean; /** * assures that the free space of a bucket is always at the end * @returns true iff a call to @function updateSortedBucketsAllocation is necassary */ export declare function removeFromSortedBuckets(buckets: Array>, bucketIndex: number, element: E, elementIndex: number | undefined, activateElement: (element: E, bucket: Bucket, index: number) => void, clearBufferAt: (index: number) => void, setElementIndex: (element: E, index: number) => void, bufferCopyWithin: (targetIndex: number, startIndex: number, endIndex: number) => void): boolean; /** * @requires that the buffer has room for elementCount number of elements */ export declare function updateSortedBucketsAllocation(buckets: Array>, activateElement: (element: E, bucket: Bucket, index: number) => void, bufferCopyWithin: (targetIndex: number, startIndex: number, endIndex: number) => void): void;