import { Plugin } from "./types"; export default function (plugins: Plugin[]): { Type: { or(...types: any[]): import("./types").Type; from(value: any, name?: string | undefined): import("./types").Type; def(typeName: string): import("./types").Def; hasDef(typeName: string): boolean; }; builtInTypes: { string: import("./types").Type; function: import("./types").Type; array: import("./types").Type; object: import("./types").Type<{ [key: string]: any; }>; RegExp: import("./types").Type; Date: import("./types").Type; number: import("./types").Type; boolean: import("./types").Type; null: import("./types").Type; undefined: import("./types").Type; BigInt: import("./types").Type; }; namedTypes: import("./gen/namedTypes").NamedTypes; builders: import("./gen/builders").builders; defineMethod: (name: any, func?: Function | undefined) => Function; getFieldNames: (object: any) => string[]; getFieldValue: (object: any, fieldName: any) => any; eachField: (object: any, callback: (name: any, value: any) => any, context?: any) => void; someField: (object: any, callback: (name: any, value: any) => any, context?: any) => boolean; getSupertypeNames: (typeName: string) => string[]; getBuilderName: (typeName: any) => any; astNodesAreEquivalent: { (a: any, b: any, problemPath?: any): boolean; assert(a: any, b: any): void; }; finalize: () => void; Path: import("./path").PathConstructor; NodePath: import("./node-path").NodePathConstructor; PathVisitor: import("./path-visitor").PathVisitorConstructor; use: (plugin: Plugin) => T_1; visit: (node: import("./types").ASTNode, methods?: import("./main").Visitor | undefined) => any; };