import { FromDefinition, ModelDefinition } from "../types/definitions"; import { Model } from "./object-model"; export interface MapModel extends Model<{ key: Key, value: Value}> { (iterable: Map, FromDefinition> | Array<[FromDefinition, FromDefinition]>): Map, FromDefinition>; new(iterable: Map, FromDefinition> | Array<[FromDefinition, FromDefinition]>): Map, FromDefinition>; definition: { key: Key, value: Value }; extend(otherKeys: Keys, otherValues: Values): MapModel<[Key, ...Keys], [Value, ...Values]> defaultTo, FromDefinition>>(defaultValue: Default): MapModelWithDefault; } export interface MapModelWithDefault extends MapModel { (): Default new(): Default } export interface MapModelConstructor { (keyDefinition: Key, valueDefinition: Value): MapModel; new(keyDefinition: Key, valueDefinition: Value): MapModel; } export const MapModel: MapModelConstructor;