import { Type, IType } from "../type"; import { IContext, IValidationResult } from "../type-checker"; import { Node } from "../../core"; export declare class Late extends Type { readonly definition: () => IType; private _subType; readonly flags: number; readonly subType: IType; constructor(name: string, definition: () => IType); instantiate(parent: Node | null, subpath: string, environment: any, snapshot: any): Node; reconcile(current: Node, newValue: any): Node; describe(): string; isValidSnapshot(value: any, context: IContext): IValidationResult; isAssignableFrom(type: IType): boolean; } export declare type ILateType = () => IType; export declare function late(type: ILateType): IType; export declare function late(name: string, type: ILateType): IType;