import { DoCheck, EventEmitter, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';
import { AbstractControl, ControlValueAccessor, FormControl, NgControl, Validator, ValidatorFn } from '@angular/forms';
import { ErrorStateMatcher } from '@angular/material/core';
import { MatFormFieldControl } from '@angular/material/form-field';
import { Subject } from 'rxjs';
import { INumericRange, NumericRangeFormGroup } from '../form/model/numeric-range-field.model';
import { NumericRangeFormService } from '../form/numeric-range-form.service';
import { NumericRangeStateMatcher } from '../form/numeric-range-state-matcher';
import * as i0 from "@angular/core";
export declare class NumericRangeFormFieldControlComponent implements OnChanges, OnInit, DoCheck, OnDestroy, MatFormFieldControl<INumericRange>, ControlValueAccessor, Validator {
    ngControl: NgControl;
    private formService;
    static nextId: number;
    get value(): INumericRange;
    set value(value: INumericRange);
    get placeholder(): string;
    set placeholder(value: string);
    minPlaceholder: string;
    maxPlaceholder: string;
    readonly: boolean;
    minReadonly: boolean;
    maxReadonly: boolean;
    required: boolean;
    disabled: boolean;
    errorStateMatcher: ErrorStateMatcher;
    autofilled?: boolean;
    dynamicSyncValidators: ValidatorFn | ValidatorFn[];
    blurred: EventEmitter<void>;
    enterPressed: EventEmitter<void>;
    numericRangeChanged: EventEmitter<INumericRange>;
    get shouldLabelFloat(): boolean;
    userAriaDescribedBy: string;
    id: string;
    get empty(): boolean;
    get errorState(): boolean;
    get minimumControl(): FormControl<number>;
    get maximumControl(): FormControl<number>;
    formGroup: NumericRangeFormGroup;
    stateChanges: Subject<void>;
    focused: boolean;
    controlType: string;
    numericRangeErrorMatcher: NumericRangeStateMatcher;
    private unsubscribe$;
    private _placeholder;
    onTouched: () => void;
    constructor(ngControl: NgControl, formService: NumericRangeFormService);
    ngOnChanges(changes: SimpleChanges): void;
    ngOnInit(): void;
    ngDoCheck(): void;
    ngOnDestroy(): void;
    writeValue(value: INumericRange): void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    setDisabledState?(isDisabled: boolean): void;
    setDescribedByIds(ids: string[]): void;
    onContainerClick(event: MouseEvent): void;
    validate(control: AbstractControl): import("@angular/forms").ValidationErrors;
    onEnterPressed(): void;
    onBlur(): void;
    onRangeValuesChanged(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NumericRangeFormFieldControlComponent, [{ self: true; }, { skipSelf: true; }]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NumericRangeFormFieldControlComponent, "ngx-numeric-range-form-field-control", never, { "value": { "alias": "value"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "minPlaceholder": { "alias": "minPlaceholder"; "required": false; }; "maxPlaceholder": { "alias": "maxPlaceholder"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "minReadonly": { "alias": "minReadonly"; "required": false; }; "maxReadonly": { "alias": "maxReadonly"; "required": false; }; "required": { "alias": "required"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "errorStateMatcher": { "alias": "errorStateMatcher"; "required": false; }; "autofilled": { "alias": "autofilled"; "required": false; }; "dynamicSyncValidators": { "alias": "dynamicSyncValidators"; "required": false; }; }, { "blurred": "blurred"; "enterPressed": "enterPressed"; "numericRangeChanged": "numericRangeChanged"; }, never, never, false, never>;
}
