import { Type, IType } from "../Type"; import { TypeFlags } from "../type-flags"; import { IContext, IValidationResult } from "../type-checker"; import { ObjectNode } from '../../core/ObjectNode'; import { INode } from '../../core/interface'; export declare class IdentifierType extends Type { readonly identifierType: IType; readonly shouldAttachNode: boolean; readonly flags: TypeFlags; constructor(identifierType: IType); instantiate(parent: ObjectNode | null, subpath: string, environment: any, snapshot: T): INode; reconcile(current: INode, newValue: any): INode; describe(): string; isValidSnapshot(value: any, context: IContext): IValidationResult; } export declare function identifier(baseType?: IType): any;