import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';
import { AbstractSchemaControl } from './forms/forms';
import { SchemaContext } from './forms/schema-context';
import { JSONSchemaType, JSONSchemaTypeName, JSONSchemaTypes } from './interfaces/json-schema';
import { NzSchema, NZSchemaDefinition } from './interfaces/nz-schema';
export declare function isSchemaObject(schema: NZSchemaDefinition): boolean;
export declare function isSchemaArray(schema: NZSchemaDefinition): boolean;
export declare function getSchemaType(schema: NzSchema): JSONSchemaTypeName | undefined;
export declare function guessType(value: any): JSONSchemaTypes;
export declare function getWidgetName(schema: NzSchema): string | null;
export declare function setRequiredProperties(properties: {
    [key: string]: AbstractSchemaControl;
}, schema: NzSchema): void;
export declare function getItemSchema(schema: NZSchemaDefinition, index: number, value?: JSONSchemaType): NZSchemaDefinition;
export declare function getSchema(schema: NzSchema, root: NzSchema): NzSchema;
export declare function getDefinition(schema: NzSchema, ref: string): NZSchemaDefinition;
export declare function isRequiredSchema(context: SchemaContext): boolean | undefined;
export declare function getSchemaValidators(context: SchemaContext): ValidatorFn[];
export declare class SchemaValidators {
    static multipleOf(multipleOf: number): (control: AbstractControl) => ValidationErrors | null;
    static maximum(maximum: number): (control: AbstractControl) => ValidationErrors | null;
    static minimum(minimum: number): (control: AbstractControl) => ValidationErrors | null;
    static exclusiveMinimum(exclusiveMinimum: number): (control: AbstractControl) => ValidationErrors | null;
    static exclusiveMaximum(exclusiveMaximum: number): (control: AbstractControl) => ValidationErrors | null;
    static integer(control: AbstractControl): ValidationErrors | null;
    static format(format: string, regex: RegExp): (control: AbstractControl) => ValidationErrors | null;
    static enum(enumValues: any[]): (control: AbstractControl) => ValidationErrors | null;
    static regex(control: AbstractControl): ValidationErrors | null;
}
