import { BreakpointObserver } from '@angular/cdk/layout';
import { ElementRef, Injector, OnDestroy, OnInit } from '@angular/core';
import { UntypedFormControl, 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 { OFormComponent } from '../../form/o-form.component';
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(form: OFormComponent, 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: UntypedFormControl): ValidationErrors;
    protected minDateValidator(control: UntypedFormControl): ValidationErrors;
    protected maxDateValidator(control: UntypedFormControl): ValidationErrors;
    protected parseDateValidator(control: UntypedFormControl): ValidationErrors;
    ensureDateRangeValue(val: any, valueType: any): void;
    set valueType(val: any);
    get valueType(): any;
    static ɵfac: i0.ɵɵFactoryDeclaration<ODateRangeLegacyInputComponent, [{ optional: true; }, null, null, null]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ODateRangeLegacyInputComponent, "o-daterange-legacy-input", never, { "separator": "separator"; "showWeekNumbers": "show-week-numbers"; "showRanges": "show-ranges"; "olocale": "locale"; "startKey": "startKey"; "endKey": "endKey"; "valueType": "value-type"; "mode": "mode"; "oformat": "format"; "oStartView": "start-view"; "oMinDate": "min"; "oMaxDate": "max"; "oTouchUi": "touch-ui"; "oStartAt": "start-at"; "filterDate": "filter-date"; "textInputEnabled": "text-input-enabled"; "dateClass": "date-class"; }, { "onChange": "onChange"; "onValueChange": "onValueChange"; "onFocus": "onFocus"; "onBlur": "onBlur"; }, never, never, false, never>;
}
