import { EventEmitter, Injector, OnInit } from '@angular/core';
import { AbstractControl, ControlValueAccessor, NgControl } from '@angular/forms';
import { RangeDatePickerModel } from '../../models/components/range-date-picker.model';
import { DateUtilService } from '../../services/date-util.service';
import { ValidatorService } from '../../services/validator.service';
import { MatDateRangePicker } from '@angular/material/datepicker';
import * as i0 from "@angular/core";
export declare class CvaRangeDatePickerComponent implements ControlValueAccessor, OnInit {
    private dateServiceUtil;
    private injector;
    label: string;
    placeholderFromDate: string;
    placeholderToDate: string;
    /**
     * giá trị là true khi muốn disabled tất cả control
     */
    disabledAll: boolean | (() => boolean);
    /**
     * giá trị là true khi muốn disabled control name fromDate
     */
    disabledFromDate: boolean | (() => boolean);
    value: RangeDatePickerModel;
    requiredFromDate: boolean | (() => boolean);
    requiredToDate: boolean | (() => boolean);
    minDate: (() => Date) | Date;
    maxDate: (() => Date) | Date;
    onChange: EventEmitter<any>;
    onOpenPicker: EventEmitter<any>;
    /** key: requiredFromDate, requiredToDate, min, max */
    errorMessages: Map<string, (e?: any) => string>;
    isLabelOutside: boolean;
    isFloatLabel: boolean;
    /** percent label outside css */
    percentOfLabelOutside: number;
    fromDateControlName: string;
    toDateControlName: string;
    title: string | null;
    isFormControl: boolean;
    formControl: AbstractControl | undefined;
    defaultFromDate: any;
    get NsValiator(): typeof ValidatorService;
    constructor(dateServiceUtil: DateUtilService, ngControl: NgControl, injector: Injector);
    get fromDateValue(): any;
    set fromDateValue(val: any);
    get toDateValue(): any;
    set toDateValue(val: any);
    ngOnInit(): void;
    propagateChange: (_: any) => void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    writeValue(obj: RangeDatePickerModel): void;
    getDisabled(disabled: boolean | (() => boolean)): boolean;
    createTitle(): void;
    callValidator(): void;
    prepareWriteValueData(val: any): string;
    isString(inputValue: any): boolean;
    getMinDate(): Date;
    getMaxDate(): Date;
    checkRequired(isRequired: boolean | (() => boolean)): boolean;
    clearRange(event: Event): void;
    openPicker(picker: MatDateRangePicker<any>): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<CvaRangeDatePickerComponent, [null, { optional: true; self: true; }, null]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<CvaRangeDatePickerComponent, "cva-range-date-picker", never, { "label": { "alias": "label"; "required": false; }; "placeholderFromDate": { "alias": "placeholderFromDate"; "required": false; }; "placeholderToDate": { "alias": "placeholderToDate"; "required": false; }; "disabledAll": { "alias": "disabledAll"; "required": false; }; "disabledFromDate": { "alias": "disabledFromDate"; "required": false; }; "value": { "alias": "value"; "required": false; }; "requiredFromDate": { "alias": "requiredFromDate"; "required": false; }; "requiredToDate": { "alias": "requiredToDate"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "errorMessages": { "alias": "errorMessages"; "required": false; }; "isLabelOutside": { "alias": "isLabelOutside"; "required": false; }; "isFloatLabel": { "alias": "isFloatLabel"; "required": false; }; "percentOfLabelOutside": { "alias": "percentOfLabelOutside"; "required": false; }; "fromDateControlName": { "alias": "fromDateControlName"; "required": false; }; "toDateControlName": { "alias": "toDateControlName"; "required": false; }; "isFormControl": { "alias": "isFormControl"; "required": false; }; }, { "onChange": "onChange"; "onOpenPicker": "onOpenPicker"; }, never, never, false, never>;
}
