import { ObservableMap, IMapChange, IMapWillChange } from "mobx"; import { IJsonPatch } from "../../core/NodeUtils"; import { IType, IComplexType, ComplexType } from "../Type"; import { TypeFlags } from "../type-flags"; import { IContext, IValidationResult } from "../type-checker"; import { ObjectNode } from "../../core/ObjectNode"; import { INode } from "../../core/interface"; export interface IExtendedObservableMap extends ObservableMap { put(value: T | any): this; } export declare function mapToString(this: ObservableMap): string; export declare class MapType extends ComplexType<{ [key: string]: S; }, IExtendedObservableMap> { readonly shouldAttachNode: boolean; subType: IType; readonly flags: TypeFlags; constructor(name: string, subType: IType); instantiate(parent: ObjectNode | null, subpath: string, environment: any, snapshot: S): INode; readonly valueType: IType<{ [key: string]: S; }, IExtendedObservableMap>; describe(): string; createNewInstance: () => ObservableMap<{}>; finalizeNewInstance: (node: ObjectNode, snapshot: any) => void; hasNestedFields(): boolean; getChildren(node: ObjectNode): INode[]; getChildField(node: ObjectNode, key: string): INode; willChange(change: IMapWillChange): IMapWillChange | null; private verifyIdentifier(expected, node); getValue(node: INode): any; getSnapshot(node: ObjectNode): { [key: string]: any; }; didChange(change: IMapChange): void; applyPatchLocally(node: ObjectNode, subpath: string, patch: IJsonPatch): void; applySnapshot(node: ObjectNode, snapshot: any): void; getChildType(key: string): IType; isValidSnapshot(value: any, context: IContext): IValidationResult; getDefaultSnapshot(): {}; removeChild(node: ObjectNode, subpath: string): void; } export declare function map(subtype: IType): IComplexType<{ [key: string]: S; }, IExtendedObservableMap>;