import { Node } from "../../core"; import { Type, IType } from "../type"; import { TypeFlags } from "../type-flags"; import { IContext, IValidationResult } from "../type-checker"; export declare class ReferenceType extends Type { private readonly targetType; readonly flags: TypeFlags; constructor(targetType: IType); describe(): string; getValue(node: Node): any; getSnapshot(node: Node): any; instantiate(parent: Node | null, subpath: string, environment: any, snapshot: any): Node; reconcile(current: Node, newValue: any): Node; isAssignableFrom(type: IType): boolean; isValidSnapshot(value: any, context: IContext): IValidationResult; } export declare function reference(factory: IType): IType;