import { AfterViewInit, ChangeDetectorRef, InjectionToken, OnDestroy, OnInit } from '@angular/core';
import { NgClassType, NgStyleInterface } from 'ng-zorro-antd/core/types';
import { NzSchemaErrorMessageService } from '../error-message/error-message';
import { AbstractSchemaControl, SchemaFormControl } from '../forms/forms';
import { JSONSchemaType } from '../interfaces/json-schema';
import { NzSchema, UISchema } from '../interfaces/nz-schema';
import * as i0 from "@angular/core";
export declare const SCHEMA: InjectionToken<NzSchema>;
export declare const SCHEMA_FORM: InjectionToken<AbstractSchemaControl>;
export declare abstract class BaseField<T extends AbstractSchemaControl = SchemaFormControl> implements OnInit, AfterViewInit, OnDestroy {
    abstract schemaForm: T;
    required: boolean | undefined;
    errorMessage?: string;
    inputElement: any;
    protected errorMessageService: NzSchemaErrorMessageService;
    protected cdr: ChangeDetectorRef;
    get schema(): NzSchema;
    get userInterfaceSchema(): UISchema;
    get widgetOptions(): {
        [p: string]: any;
    };
    get ngClass(): NgClassType;
    get ngStyle(): NgStyleInterface;
    get size(): 'large' | 'default' | 'small';
    get placeholder(): string;
    get type(): string | undefined;
    get widgetData(): any;
    get disabled(): boolean | undefined;
    get enum(): JSONSchemaType[];
    get label(): string;
    get description(): string;
    init(): void;
    setInputElementOptions(firstChange?: boolean): void;
    ngAfterViewInit(): void;
    ngOnInit(): void;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<BaseField<any>, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<BaseField<any>, never, never, {}, {}, never, never, true, never>;
}
