import { Def, Plugin } from "./types"; export default function (defs: Def[]): { Type: { or(...types: any[]): import("./lib/types").Type; from(value: any, name?: string | undefined): import("./lib/types").Type; def(typeName: string): import("./lib/types").Def; hasDef(typeName: string): boolean; }; builtInTypes: { string: import("./lib/types").Type; function: import("./lib/types").Type; array: import("./lib/types").Type; object: import("./lib/types").Type<{ [key: string]: any; }>; RegExp: import("./lib/types").Type; Date: import("./lib/types").Type; number: import("./lib/types").Type; boolean: import("./lib/types").Type; null: import("./lib/types").Type; undefined: import("./lib/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("./lib/path").PathConstructor; NodePath: import("./lib/node-path").NodePathConstructor; PathVisitor: import("./lib/path-visitor").PathVisitorConstructor; use: (plugin: Plugin) => T; visit: (node: import("./lib/types").ASTNode, methods?: import("./main").Visitor | undefined) => any; };