import { NgClassType, NgStyleInterface } from 'ng-zorro-antd/core/types';
import { JSONSchema } from './json-schema';
export interface UISchema<T extends Record<string, unknown> = {
    [p: string]: any;
}> {
    widget?: string;
    messages?: Record<string, unknown>;
    placeholder?: string;
    disabled?: boolean;
    size?: 'large' | 'default' | 'small';
    klass?: NgClassType;
    style?: NgStyleInterface | null;
    type?: string;
    widgetData?: any;
    options?: T;
}
export type NZSchemaDefinition = NzSchema;
export interface NzSchema extends JSONSchema {
    ui?: UISchema;
    items?: NZSchemaDefinition | NZSchemaDefinition[];
    additionalItems?: NZSchemaDefinition;
    properties?: {
        [key: string]: NZSchemaDefinition;
    };
    patternProperties?: {
        [key: string]: NZSchemaDefinition;
    };
    additionalProperties?: NZSchemaDefinition;
    dependencies?: {
        [key: string]: NZSchemaDefinition | string[];
    };
    propertyNames?: NZSchemaDefinition;
    if?: NZSchemaDefinition;
    then?: NZSchemaDefinition;
    else?: NZSchemaDefinition;
    allOf?: NZSchemaDefinition[];
    anyOf?: NZSchemaDefinition[];
    oneOf?: NZSchemaDefinition[];
    not?: NZSchemaDefinition;
    definitions?: {
        [key: string]: NZSchemaDefinition;
    };
}
