import { ChangeDetectorRef, EventEmitter, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';
import { AbstractControl, ControlValueAccessor, FormControl, NgControl, ValidationErrors, Validator, ValidatorFn } from '@angular/forms';
import { FloatLabelType, MatFormFieldAppearance } from '@angular/material/form-field';
import { INumericRange, NumericRangeFormGroup } from '../form/model/numeric-range-field.model';
import { NumericRangeFormService } from '../form/numeric-range-form.service';
import * as i0 from "@angular/core";
export declare class NumericRangeFormFieldContainerComponent implements OnChanges, OnInit, OnDestroy, ControlValueAccessor, Validator {
    private controlDirective;
    private formService;
    private changeDetectorRef;
    label: string;
    appearance: MatFormFieldAppearance;
    floatLabel: FloatLabelType;
    minPlaceholder: string;
    maxPlaceholder: string;
    readonly: boolean;
    minReadonly: boolean;
    maxReadonly: boolean;
    resettable: boolean;
    required: boolean;
    requiredErrorMessage: string;
    minimumErrorMessage: string;
    maximumErrorMessage: string;
    invalidRangeErrorMessage: string;
    dynamicSyncValidators: ValidatorFn | ValidatorFn[];
    blurred: EventEmitter<void>;
    enterPressed: EventEmitter<void>;
    numericRangeChanged: EventEmitter<INumericRange>;
    formGroup: NumericRangeFormGroup;
    control: FormControl<any>;
    private unsubscribe$;
    onTouched: () => void;
    get minimumControl(): FormControl<number>;
    get maximumControl(): FormControl<number>;
    constructor(controlDirective: NgControl, formService: NumericRangeFormService, changeDetectorRef: ChangeDetectorRef);
    ngOnChanges(changes: SimpleChanges): void;
    ngOnInit(): void;
    ngOnDestroy(): void;
    writeValue(value: INumericRange): void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    setDisabledState(isDisabled: boolean): void;
    validate(control: AbstractControl): ValidationErrors | null;
    onEnterPressed(): void;
    onBlur(): void;
    onRangeValuesChanged(value: INumericRange): void;
    onReset(): void;
    private setSyncValidator;
    private setAsyncValidator;
    static ɵfac: i0.ɵɵFactoryDeclaration<NumericRangeFormFieldContainerComponent, [{ self: true; }, { host: true; }, null]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NumericRangeFormFieldContainerComponent, "ngx-numeric-range-form-field", never, { "label": { "alias": "label"; "required": false; }; "appearance": { "alias": "appearance"; "required": false; }; "floatLabel": { "alias": "floatLabel"; "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; }; "resettable": { "alias": "resettable"; "required": false; }; "required": { "alias": "required"; "required": false; }; "requiredErrorMessage": { "alias": "requiredErrorMessage"; "required": false; }; "minimumErrorMessage": { "alias": "minimumErrorMessage"; "required": false; }; "maximumErrorMessage": { "alias": "maximumErrorMessage"; "required": false; }; "invalidRangeErrorMessage": { "alias": "invalidRangeErrorMessage"; "required": false; }; "dynamicSyncValidators": { "alias": "dynamicSyncValidators"; "required": false; }; }, { "blurred": "blurred"; "enterPressed": "enterPressed"; "numericRangeChanged": "numericRangeChanged"; }, never, never, false, never>;
}
