import { RMapBase } from '@rimbu/collection-types/map-custom';
import { Comp } from '@rimbu/common';
import type { SortedMap } from '@rimbu/sorted/map';
import { SortedMapEmpty, SortedMapNode, SortedMapLeaf, SortedMapInner, SortedMapBuilder } from '@rimbu/sorted/map-custom';
export declare class SortedMapContext<UK> extends RMapBase.ContextBase<UK, SortedMap.Types> implements SortedMap.Context<UK> {
    readonly blockSizeBits: number;
    readonly comp: Comp<UK>;
    readonly maxEntries: number;
    readonly minEntries: number;
    readonly _empty: SortedMap<any, any>;
    constructor(blockSizeBits: number, comp: Comp<UK>);
    readonly typeTag = "SortedMap";
    isNonEmptyInstance(source: any): source is any;
    readonly builder: <K extends UK, V>() => SortedMapBuilder<K, V>;
    createBuilder<K extends UK, V>(source?: SortedMap<K, V>): SortedMapBuilder<K, V>;
    isValidKey(key: any): key is UK;
    findIndex(key: UK, entries: readonly (readonly [UK, unknown])[]): number;
    leaf<V>(entries: readonly (readonly [UK, V])[]): SortedMapLeaf<UK, V>;
    inner<V>(entries: readonly (readonly [UK, V])[], children: readonly SortedMapNode<UK, V>[], size: number): SortedMapInner<UK, V>;
    isSortedMapEmpty(obj: any): obj is SortedMapEmpty;
    isSortedMapLeaf<K, V>(obj: any): obj is SortedMapLeaf<K, V>;
    isSortedMapInner<K, V>(obj: any): obj is SortedMapInner<K, V>;
}
export declare function createSortedMapContext<UK>(options?: {
    comp?: Comp<UK>;
    blockSizeBits?: number;
}): SortedMap.Context<UK>;
