import { FieldArgs, FieldSpecs, FieldContext, TypeConstructor, FieldObserver } from "./interfaces";
export declare function createFieldObserver(): FieldObserver;
/**
*
* @param typeName
* @param fieldSpecsConstructor
*
* If you want to always get the latest args, please use getArgs() directly instead of destructuring at the top level and using them on each function
*/
export declare function createType(typeName: string, fieldSpecsConstructor: (context?: FieldContext, args?: A) => S): TypeConstructor;
export declare const defaultTypes: {
Any: TypeConstructor<{}, {}>;
Boolean: TypeConstructor;
Number: TypeConstructor;
String: TypeConstructor;
DateTime: TypeConstructor<{}, import("./interfaces").DateTimeFieldSpecs>;
OneOf: TypeConstructor;
LookUp: TypeConstructor;
List: TypeConstructor;
Collection: TypeConstructor;
};