import { AbstractControl } from '@angular/forms';
import { SchemaPrimitiveType, PlainObject, IValidatorFn, AsyncIValidatorFn } from './validator.functions';
export declare class JsonValidators {
    static required(input: AbstractControl): PlainObject;
    static required(input?: boolean): IValidatorFn;
    static type(type: SchemaPrimitiveType | SchemaPrimitiveType[]): IValidatorFn;
    static enum(enumList: any[]): IValidatorFn;
    static minLength(requiredLength: number): IValidatorFn;
    static maxLength(requiredLength: number): IValidatorFn;
    static pattern(pattern: string, wholeString?: boolean): IValidatorFn;
    static format(format: 'date-time' | 'email' | 'hostname' | 'ipv4' | 'ipv6' | 'uri' | 'url' | 'color'): IValidatorFn;
    static minimum(minimum: number, exclusiveMinimum?: boolean): IValidatorFn;
    static maximum(maximum: number, exclusiveMaximum?: boolean): IValidatorFn;
    static multipleOf(multipleOf: number): IValidatorFn;
    static minProperties(minProperties: number): IValidatorFn;
    static maxProperties(maxProperties: number): IValidatorFn;
    static dependencies(dependencies: any): IValidatorFn;
    static minItems(minItems: number): IValidatorFn;
    static maxItems(maxItems: number): IValidatorFn;
    static uniqueItems(unique?: boolean): IValidatorFn;
    static nullValidator(c: AbstractControl): PlainObject;
    static composeAnyOf(validators: IValidatorFn[]): IValidatorFn;
    static composeOneOf(validators: IValidatorFn[]): IValidatorFn;
    static composeAllOf(validators: IValidatorFn[]): IValidatorFn;
    static composeNot(validator: IValidatorFn): IValidatorFn;
    static compose(validators: IValidatorFn[]): IValidatorFn;
    static composeAsync(validators: AsyncIValidatorFn[]): AsyncIValidatorFn;
}
