import { OnDestroy, TemplateRef, QueryList } from '@angular/core';
import { FieldType as CoreFieldType, FormlyFieldConfig } from '@ngx-formly/core';
import { Subject } from 'rxjs';
import { MatFormField, MatFormFieldControl } from '@angular/material/form-field';
import { ErrorStateMatcher } from '@angular/material/core';
import { FormlyFieldProps } from './form-field.wrapper';
import * as i0 from "@angular/core";
export declare abstract class FieldType<F extends FormlyFieldConfig<FormlyFieldProps>> extends CoreFieldType<F> implements OnDestroy, MatFormFieldControl<any> {
    set matPrefix(prefix: TemplateRef<any>);
    set matTextPrefix(textPrefix: TemplateRef<any>);
    set matSuffix(suffix: TemplateRef<any>);
    set matTextSuffix(textSuffix: TemplateRef<any>);
    set _controls(controls: QueryList<MatFormFieldControl<any>>);
    errorStateMatcher: ErrorStateMatcher;
    stateChanges: Subject<void>;
    _errorState: boolean;
    _focused: boolean;
    ngOnDestroy(): void;
    setDescribedByIds(_ids: string[]): void;
    onContainerClick(_event: MouseEvent): void;
    get errorState(): boolean;
    get controlType(): any;
    get focused(): boolean;
    get disabled(): boolean;
    get required(): boolean;
    get placeholder(): string;
    get shouldPlaceholderFloat(): boolean;
    get value(): any;
    set value(value: any);
    get ngControl(): any;
    get empty(): boolean;
    get shouldLabelFloat(): boolean;
    get formField(): MatFormField;
    private attachControl;
    static ɵfac: i0.ɵɵFactoryDeclaration<FieldType<any>, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<FieldType<any>, never, never, {}, {}, never>;
}
