// WARNING: Must not contain assertions here and in dependency modules! type NonNull = {}; export interface Dict { add?(key: K, value: V): NonNull; set(key: K, value: V): this; get(key: K): V | undefined; has(key: K): boolean; delete(key: K): boolean; } export interface IterableDict extends Dict { readonly size: number; [Symbol.iterator](): Iterator<[K, V], undefined, undefined>; }