import { BreakpointObserver } from '@angular/cdk/layout';
import { ElementRef, Injector, OnDestroy, OnInit } from '@angular/core';
import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';
import moment from 'moment';
import { FormValueOptions } from '../../../types/form-value-options.type';
import { ODateValueType } from '../../../types/o-date-value.type';
import { OFormDataComponent } from '../../o-form-data-component.class';
import { ODaterangepickerDirective } from './o-daterange-input.directive';
import { DaterangepickerComponent } from './o-daterange-picker.component';
import * as i0 from "@angular/core";
export declare const DEFAULT_OUTPUTS_O_DATERANGE_LEGACY_INPUT: string[];
export declare const DEFAULT_INPUTS_O_DATERANGE_LEGACY_INPUT: string[];
export declare class ODateRangeLegacyInputComponent extends OFormDataComponent implements OnDestroy, OnInit {
    protected breakpointObserver: BreakpointObserver;
    pickerDirective: ODaterangepickerDirective;
    picker: DaterangepickerComponent;
    private matInputRef;
    textInputEnabled: boolean;
    showWeekNumbers: boolean;
    oTouchUi: boolean;
    showRanges: boolean;
    protected _oMinDate: moment.Moment;
    mode: 'mobile' | 'desktop' | 'auto';
    get oMinDate(): moment.Moment;
    set oMinDate(value: moment.Moment);
    protected _oMaxDate: moment.Moment;
    get oMaxDate(): moment.Moment;
    set oMaxDate(value: moment.Moment);
    protected _startKey: string;
    get startKey(): string;
    set startKey(value: string);
    protected _endKey: string;
    get endKey(): string;
    set endKey(value: string);
    protected _valueType: ODateValueType;
    protected _separator: string;
    get separator(): string;
    set separator(value: string);
    get showClearButton(): boolean;
    get localeOptions(): any;
    isMobileMode(): boolean;
    isDesktopMode(): boolean;
    oformat: string;
    protected _localeOptions: any;
    protected olocale: string;
    private readonly momentSrv;
    private readonly oTranslate;
    constructor(elRef: ElementRef, injector: Injector, breakpointObserver: BreakpointObserver);
    ngOnInit(): void;
    openPicker(): void;
    onChangeEvent(event: any): void;
    setValue(val: any, options?: FormValueOptions, setDirty?: boolean): void;
    onClickClearValue(e: Event): void;
    datesUpdated(range: any): void;
    setData(newValue: any): void;
    updateElement(): void;
    getDateRangeToString(valueToString: string): {};
    resolveValidators(): ValidatorFn[];
    isObjectDataRangeNull(objectValue: any): boolean;
    protected rangeDateValidator(control: AbstractControl): ValidationErrors;
    protected minDateValidator(control: AbstractControl): ValidationErrors;
    protected maxDateValidator(control: AbstractControl): ValidationErrors;
    protected parseDateValidator(control: AbstractControl): ValidationErrors;
    ensureDateRangeValue(val: any, valueType: any): void;
    set valueType(val: any);
    get valueType(): any;
    static ɵfac: i0.ɵɵFactoryDeclaration<ODateRangeLegacyInputComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ODateRangeLegacyInputComponent, "o-daterange-legacy-input", never, { "separator": { "alias": "separator"; "required": false; }; "showWeekNumbers": { "alias": "show-week-numbers"; "required": false; }; "showRanges": { "alias": "show-ranges"; "required": false; }; "olocale": { "alias": "locale"; "required": false; }; "startKey": { "alias": "startKey"; "required": false; }; "endKey": { "alias": "endKey"; "required": false; }; "valueType": { "alias": "value-type"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "oformat": { "alias": "format"; "required": false; }; "oStartView": { "alias": "start-view"; "required": false; }; "oMinDate": { "alias": "min"; "required": false; }; "oMaxDate": { "alias": "max"; "required": false; }; "oTouchUi": { "alias": "touch-ui"; "required": false; }; "oStartAt": { "alias": "start-at"; "required": false; }; "filterDate": { "alias": "filter-date"; "required": false; }; "textInputEnabled": { "alias": "text-input-enabled"; "required": false; }; "dateClass": { "alias": "date-class"; "required": false; }; }, { "onChange": "onChange"; "onValueChange": "onValueChange"; "onFocus": "onFocus"; "onBlur": "onBlur"; }, never, never, true, never>;
}
