import { IEqualityComparer, IMap, IEnumerator } from "./Util.js";
import { Option } from "./Option.js";
import { int32 } from "./Int32.js";
import { FSharpRef } from "./Types.js";
import { TypeInfo } from "./Reflection.js";
export declare class Dictionary<Key, Value> implements IMap<Key, Value>, Iterable<[Key, Value]>, Iterable<[Key, Value]> {
    readonly comparer: IEqualityComparer<Key>;
    readonly hashMap: IMap<int32, [Key, Value][]>;
    "init@9": int32;
    constructor(pairs: Iterable<[Key, Value]>, comparer: IEqualityComparer<Key>);
    get [Symbol.toStringTag](): string;
    toJSON(): any;
    "System.Collections.IEnumerable.GetEnumerator"(): IEnumerator<any>;
    GetEnumerator(): IEnumerator<[Key, Value]>;
    [Symbol.iterator](): Iterator<[Key, Value]>;
    "System.Collections.Generic.ICollection`1.Add2B595"(item: [Key, Value]): void;
    "System.Collections.Generic.ICollection`1.Clear"(): void;
    "System.Collections.Generic.ICollection`1.Contains2B595"(item: [Key, Value]): boolean;
    "System.Collections.Generic.ICollection`1.CopyToZ3B4C077E"(array: [Key, Value][], arrayIndex: int32): void;
    "System.Collections.Generic.ICollection`1.get_Count"(): int32;
    "System.Collections.Generic.ICollection`1.get_IsReadOnly"(): boolean;
    "System.Collections.Generic.ICollection`1.Remove2B595"(item: [Key, Value]): boolean;
    "System.Collections.Generic.IDictionary`2.Add5BDDA1"(key: Key, value: Value): void;
    "System.Collections.Generic.IDictionary`2.ContainsKey2B595"(key: Key): boolean;
    "System.Collections.Generic.IDictionary`2.get_Item2B595"(key: Key): Value;
    "System.Collections.Generic.IDictionary`2.set_Item5BDDA1"(key: Key, v: Value): void;
    "System.Collections.Generic.IDictionary`2.get_Keys"(): Iterable<Key>;
    "System.Collections.Generic.IDictionary`2.Remove2B595"(key: Key): boolean;
    "System.Collections.Generic.IDictionary`2.TryGetValue6DC89625"(key: Key, value: FSharpRef<Value>): boolean;
    "System.Collections.Generic.IDictionary`2.get_Values"(): Iterable<Value>;
    get size(): int32;
    clear(): void;
    delete(k: Key): boolean;
    entries(): Iterable<[Key, Value]>;
    get(k: Key): Value;
    has(k: Key): boolean;
    keys(): Iterable<Key>;
    set(k: Key, v: Value): IMap<Key, Value>;
    values(): Iterable<Value>;
    forEach(f: ((arg0: Value, arg1: Key, arg2: IMap<Key, Value>) => void), thisArg?: Option<any>): void;
}
export declare function Dictionary_$reflection(gen0: TypeInfo, gen1: TypeInfo): TypeInfo;
export declare function Dictionary_$ctor_6623D9B3<Key, Value>(pairs: Iterable<[Key, Value]>, comparer: IEqualityComparer<Key>): Dictionary<Key, Value>;
export declare function Dictionary__TryFind_2B595<Key, Value>(this$: Dictionary<Key, Value>, k: Key): Option<[Key, Value]>;
export declare function Dictionary__get_Comparer<Key, Value>(this$: Dictionary<Key, Value>): IEqualityComparer<Key>;
export declare function Dictionary__Clear<Key, Value>(this$: Dictionary<Key, Value>): void;
export declare function Dictionary__get_Count<Key, Value>(this$: Dictionary<Key, Value>): int32;
export declare function Dictionary__get_Item_2B595<Key, Value>(this$: Dictionary<Key, Value>, k: Key): Value;
export declare function Dictionary__set_Item_5BDDA1<Key, Value>(this$: Dictionary<Key, Value>, k: Key, v: Value): void;
export declare function Dictionary__Add_5BDDA1<Key, Value>(this$: Dictionary<Key, Value>, k: Key, v: Value): void;
export declare function Dictionary__ContainsKey_2B595<Key, Value>(this$: Dictionary<Key, Value>, k: Key): boolean;
export declare function Dictionary__Remove_2B595<Key, Value>(this$: Dictionary<Key, Value>, k: Key): boolean;
