import { FieldDataType, IFieldValidatorSettingsBase, IFieldValidatorSettingsBool, IFieldValidatorSettingsString, IFieldValidatorSettingsInt32, IFieldValidatorSettingsFloat64, IFieldValidatorSettingsObject, IFieldValidatorSettingsArray, IValidatorInputOptions, IFieldValidatorBase, IFieldValidatorReal, IFieldValidatorSchema } from '../types/core';
declare const VALID_TYPES: string[];
declare class FieldValidatorBase implements IFieldValidatorBase {
    settings: IFieldValidatorSettingsBase;
    constructor();
    required(required?: boolean): this;
    defaultValue(_inputValue: any): this;
    tags(tags: string[]): this;
    description(description: string): this;
    example(_example: any): this;
    validator(validator: IValidatorInputOptions): this;
}
declare class FieldValidatorBool extends FieldValidatorBase implements IFieldValidatorReal {
    settings: IFieldValidatorSettingsBool;
    constructor(base: IFieldValidatorSettingsBase);
    defaultValue(inputValue: boolean): this;
    example(example: boolean): this;
    oneOf(inputValues: boolean[]): this;
}
declare class FieldValidatorString extends FieldValidatorBase implements IFieldValidatorReal {
    settings: IFieldValidatorSettingsString;
    constructor(base: IFieldValidatorSettingsBase);
    defaultValue(inputValue: string): this;
    example(example: string): this;
    max(inputMax: number): this;
    min(inputMin: number): this;
    allowNull(allowNull?: boolean): this;
    primaryKey(primaryKey?: boolean): this;
    autoIncrement(autoIncrement?: boolean): this;
    oneOf(inputValues: string[]): this;
    uuid(isUuid?: boolean): this;
}
declare class FieldValidatorInt32 extends FieldValidatorBase implements IFieldValidatorReal {
    settings: IFieldValidatorSettingsInt32;
    constructor(base: IFieldValidatorSettingsBase);
    defaultValue(inputValue: number): this;
    example(example: number): this;
    max(inputMax: number): this;
    min(inputMin: number): this;
    primaryKey(primaryKey?: boolean): this;
    autoIncrement(autoIncrement?: boolean): this;
    oneOf(inputValues: number[]): this;
}
declare class FieldValidatorFloat64 extends FieldValidatorBase implements IFieldValidatorReal {
    settings: IFieldValidatorSettingsFloat64;
    constructor(base: IFieldValidatorSettingsBase);
    defaultValue(inputValue: number): this;
    example(example: number): this;
    max(inputMax: number): this;
    min(inputMin: number): this;
    oneOf(inputValues: number[]): this;
    allowNaN(allowNaN?: boolean): this;
}
declare class FieldValidatorObject extends FieldValidatorBase implements IFieldValidatorReal {
    settings: IFieldValidatorSettingsObject;
    constructor(base: IFieldValidatorSettingsBase);
    defaultValue(inputValue: Record<string, unknown>): this;
    example(example: Record<string, unknown>): this;
    schema(inputSchema: IFieldValidatorSchema): this;
}
declare class FieldValidatorArray extends FieldValidatorBase implements IFieldValidatorReal {
    settings: IFieldValidatorSettingsArray;
    constructor(base: IFieldValidatorSettingsBase);
    defaultValue(inputValue: any[]): this;
    example(example: any[]): this;
    max(inputMax: number): this;
    min(inputMin: number): this;
    arrayOf(inputSchema: IFieldValidatorReal): this;
}
declare class FieldValidatorStart extends FieldValidatorBase {
    constructor();
    bool(): any;
    string(): any;
    int32(): any;
    float64(): any;
    object(schema?: IFieldValidatorSchema): any;
    obj(schema: any): any;
    array(): any;
    type(inputType: FieldDataType): any;
    arrayOf(schema: IFieldValidatorReal): any;
}
declare type FieldValidatorInstance = FieldValidatorBool | FieldValidatorString | FieldValidatorInt32 | FieldValidatorFloat64 | FieldValidatorObject | FieldValidatorArray;
declare type FieldValidatorPrimitive = FieldValidatorBool | FieldValidatorString | FieldValidatorInt32 | FieldValidatorFloat64;
export { FieldValidatorBase, FieldValidatorBool, FieldValidatorString, FieldValidatorInt32, FieldValidatorFloat64, FieldValidatorObject, FieldValidatorArray, FieldValidatorInstance, FieldValidatorPrimitive, VALID_TYPES, };
export default FieldValidatorStart;
