import { DoCheck, ElementRef, OnDestroy, OnInit } from '@angular/core';
import { FormGroupDirective, NgControl, NgForm } from '@angular/forms';
import { CanUpdateErrorState, ErrorStateMatcher } from '@angular/material/core';
import { MatFormFieldControl } from '@angular/material/form-field';
import { _MatInputMixinBase } from '@deja-js/component/core';
import { Subject } from 'rxjs';
import { DejaEditorComponent } from '../deja-editor.component';
import * as i0 from "@angular/core";
export declare class DejaEditorSelectorDirective extends _MatInputMixinBase implements MatFormFieldControl<string>, DoCheck, OnInit, OnDestroy, CanUpdateErrorState {
    private editor;
    ngControl: NgControl;
    private hostElement;
    placeholder: string;
    describedBy: string;
    errorState: boolean;
    autofilled?: boolean;
    value: string;
    stateChanges: Subject<void>;
    focused: boolean;
    controlType: string;
    protected _disabled: boolean;
    protected _uid: string;
    protected _id: string;
    protected _required: boolean;
    private _placeholder;
    get id(): string;
    set id(value: string);
    get required(): boolean;
    set required(value: boolean);
    get disabled(): boolean;
    set disabled(value: boolean);
    constructor(editor: DejaEditorComponent, ngControl: NgControl, parentForm: NgForm, parentFormGroup: FormGroupDirective, defaultErrorStateMatcher: ErrorStateMatcher, hostElement: ElementRef<HTMLElement>);
    onContainerClick(): void;
    setDescribedByIds(ids: string[]): void;
    ngOnInit(): void;
    ngDoCheck(): void;
    ngOnDestroy(): void;
    get empty(): boolean;
    get shouldLabelFloat(): boolean;
    private attachPlaceholder;
    private detachPlaceholder;
    private generatePlaceholder;
    static ɵfac: i0.ɵɵFactoryDeclaration<DejaEditorSelectorDirective, [{ self: true; }, { optional: true; self: true; }, { optional: true; }, { optional: true; }, null, { host: true; }]>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<DejaEditorSelectorDirective, "deja-editor", never, { "placeholder": "placeholder"; "id": "id"; "required": "required"; "disabled": "disabled"; }, {}, never, never, false>;
}
