import { OnInit, ElementRef, EventEmitter } from '@angular/core';
import { Platform } from '@angular/cdk/platform';
import { NativeDateAdapter } from '@angular/material';
import { DatePicker } from '../../../../../component/dataview/input/DatePicker.component';
import { INeedFocus } from '../../../../../component/INeedFocus';
import { NeedFocusService } from '../../../../../service/NeedFocusService.service';
import { IFormatter } from '../../../../../share/formatter/IFormatter';
import { IHasData } from '../../../../../component/IHasData';
import { FormatterFactory } from '../../../../../service/FormatterFactory.service';
import { PhloxAppInfoService } from '../../../../../service/PhloxAppInfoService.service';
import { DateAdapter } from '@angular/material';
import { FormControl } from '@angular/forms';
export declare class MaterialDateAdapter extends NativeDateAdapter {
    private formatter;
    constructor(matDateLocale: string, platform: Platform);
    setFormatter(formatter: IFormatter): void;
    getFormatter(): IFormatter;
    parse(value: any): any;
    format(date: any, displayFormat: string): string;
}
export declare class MaterialDatePicker extends DatePicker implements OnInit, INeedFocus {
    static readonly TYPE_NAME: string;
    static DateAdapterFactory(matDateLocale: string, platform: Platform): MaterialDateAdapter;
    private picker;
    protected dataParent: IHasData;
    protected ignoreParentData: boolean;
    protected data: any;
    protected ignoreParentDisabled: boolean;
    protected delegateHistory: boolean;
    protected onDisabled: Function;
    protected onEnabled: Function;
    protected loadingEnabled: boolean;
    protected i18nKey: string;
    protected bypass: boolean;
    protected options: any;
    protected disabled: boolean;
    protected field: string;
    protected name: string;
    protected typeOfData: string;
    protected readOnly: boolean;
    protected help: any;
    protected formatter: IFormatter;
    protected formatterName: string;
    protected formatterOptions: any;
    protected formatterUsePropertyValue: boolean;
    protected dataPattern: string;
    protected width: string;
    protected height: string;
    protected popupWidth: string;
    protected popupHeight: string;
    protected minDate: Date;
    protected maxDate: Date;
    protected label: string;
    protected description: string;
    protected locale: string;
    protected buttonPosition: string;
    protected buttonIcon: string;
    protected startView: string;
    protected startAt: Date | null;
    protected panelClass: string | string[];
    protected max: Date | null;
    protected min: Date | null;
    protected loadEvent: EventEmitter<any>;
    protected startValidateEvent: EventEmitter<any>;
    protected endValidateEvent: EventEmitter<any>;
    protected beforeFocusEvent: EventEmitter<any>;
    protected focusEvent: EventEmitter<any>;
    protected beforeLostFocusEvent: EventEmitter<any>;
    protected lostFocusEvent: EventEmitter<any>;
    protected beforeChangeEvent: EventEmitter<any>;
    protected changeEvent: EventEmitter<any>;
    protected beforeViewShowEvent: EventEmitter<any>;
    protected viewShowEvent: EventEmitter<any>;
    protected beforeViewHideEvent: EventEmitter<any>;
    protected viewHideEvent: EventEmitter<any>;
    protected beforeMonthSelectedEvent: EventEmitter<any>;
    protected monthSelectedEvent: EventEmitter<any>;
    protected beforeYearSelectedEvent: EventEmitter<any>;
    protected yearSelectedEvent: EventEmitter<any>;
    private _classFocused;
    private _adapter;
    formControl: FormControl;
    _firstTextValue: string;
    constructor(elementRef: ElementRef, needFocusService: NeedFocusService, formatterFactory: FormatterFactory, phloxAppInfoService: PhloxAppInfoService, adapter: DateAdapter<any>);
    ngOnInit(): void;
    ngOnChanges(changes: any): void;
    render(): void;
    getClassMatFocused(): any;
    private isBtnFocused();
    private isTxtFocused();
    protected doFocus($event: Event): void;
    onLostFocusing($event: Event): void;
    onBtnLostFocusing($event: Event): void;
    protected doLostFocus($event: Event): void;
    protected doShow(): void;
    onFocus(event: any): void;
    getLabel(): string;
    setLabel(label: string): void;
    getDescription(): string;
    setDescription(description: string): void;
    getButtonPosition(): string;
    setButtonPosition(buttonPosition: string): void;
    getButtonIcon(): string;
    setButtonIcon(buttonIcon: string): void;
    getStartView(): string;
    setStartView(startView: string): void;
    getStartAt(): any;
    setStartAt(startAt: any): void;
    getMin(): Date;
    setMin(min: Date): void;
    getMax(): Date;
    setMax(max: Date): void;
    getPanelClass(): any;
    setPanelClass(panelClass: any): void;
    getLocale(): string;
    setLocale(locale: string): void;
    onOpened($event: any, fireEvent?: boolean): void;
    onClosed($event: any, fireEvent?: boolean): void;
    onDateChanged($event: any, fireEvent?: boolean): void;
    setInputValue(inputVal: any, $event?: Event, fireEvent?: boolean): void;
    onMonthSelected($event: any, fireEvent?: boolean): void;
    protected emitBeforeMonthSelectedEvent(newValue: any, $event?: any): void;
    protected emitMonthSelectedEvent(newValue: any, $event?: any): void;
    onYearSelected($event: any, fireEvent?: boolean): void;
    protected emitBeforeYearSelectedEvent(newValue: any, $event?: any): void;
    protected emitYearSelectedEvent(newValue: any, $event?: any): void;
    setPopupHeight(popupHeight: string): void;
    setPopupWidth(popupWidth: string): void;
    getBeforeMonthSelectedEvent(): EventEmitter<any>;
    setBeforeMonthSelectedEvent(event: EventEmitter<any>): void;
    getMonthSelectedEvent(): EventEmitter<any>;
    setMonthSelectedEvent(event: EventEmitter<any>): void;
    getBeforeYearSelectedEvent(): EventEmitter<any>;
    setBeforeYearSelectedEvent(event: EventEmitter<any>): void;
    getYearSelectedEvent(): EventEmitter<any>;
    setYearSelectedEvent(event: EventEmitter<any>): void;
    setFormatterName(formatterName: string): void;
    setFormatterOptions(options: any): void;
    setFormatter(formatter: IFormatter): void;
    setOptions(options: any): void;
    setData(data: any): void;
}
