import { AfterViewInit, ElementRef, OnDestroy, OnChanges, SimpleChanges } from '@angular/core';
import { PoButtonComponent } from '../../po-button/po-button.component';
import { PoCalendarComponent } from '../../po-calendar/po-calendar.component';
import { PoDatepickerBaseComponent } from './po-datepicker-base.component';
import { PoHelperComponent } from '../../po-helper';
/**
 * @docsExtends PoDatepickerBaseComponent
 *
 * @example
 *
 * <example name="po-datepicker-basic" title="PO Datepicker Basic">
 *  <file name="sample-po-datepicker-basic/sample-po-datepicker-basic.component.html"> </file>
 *  <file name="sample-po-datepicker-basic/sample-po-datepicker-basic.component.ts"> </file>
 * </example>
 *
 * <example name="po-datepicker-labs" title="PO Datepicker Labs">
 *  <file name="sample-po-datepicker-labs/sample-po-datepicker-labs.component.html"> </file>
 *  <file name="sample-po-datepicker-labs/sample-po-datepicker-labs.component.ts"> </file>
 * </example>
 *
 * <example name="po-datepicker-year" title="PO Datepicker Year">
 *  <file name="sample-po-datepicker-year/sample-po-datepicker-year.component.html"> </file>
 *  <file name="sample-po-datepicker-year/sample-po-datepicker-year.component.ts"> </file>
 * </example>
 *
 * <example name="po-datepicker-month-year" title="PO Datepicker MonthYear">
 *  <file name="sample-po-datepicker-month-year/sample-po-datepicker-month-year.component.html"> </file>
 *  <file name="sample-po-datepicker-month-year/sample-po-datepicker-month-year.component.ts"> </file>
 * </example>
 *
 * <example name="po-datepicker-airfare" title="PO Datepicker - Airfare">
 *  <file name="sample-po-datepicker-airfare/sample-po-datepicker-airfare.component.html"> </file>
 *  <file name="sample-po-datepicker-airfare/sample-po-datepicker-airfare.component.ts"> </file>
 * </example>
 *
 * <example name="po-datepicker-airfare-reactive-form" title="PO Datepicker - Airfare Reactive Form">
 *  <file name="sample-po-datepicker-airfare-reactive-form/sample-po-datepicker-airfare-reactive-form.component.html"> </file>
 *  <file name="sample-po-datepicker-airfare-reactive-form/sample-po-datepicker-airfare-reactive-form.component.ts"> </file>
 * </example>
 */
export declare class PoDatepickerComponent extends PoDatepickerBaseComponent implements AfterViewInit, OnDestroy, OnChanges {
    private readonly controlPosition;
    private readonly renderer;
    calendar: PoCalendarComponent;
    dialogPicker: ElementRef;
    iconDatepicker: PoButtonComponent;
    inputEl: ElementRef;
    iconClean: ElementRef<HTMLElement>;
    helperEl?: PoHelperComponent;
    displayAdditionalHelp: boolean;
    el: ElementRef;
    hour: string;
    id: string;
    visible: boolean;
    literals: any;
    eventListenerFunction: () => void;
    eventResizeListener: () => void;
    private clickListener;
    private readonly dateRegex;
    private readonly isoRegex;
    private timeoutChange;
    private valueBeforeChange;
    private subscriptionValidator;
    get autocomplete(): "off" | "on";
    get dateInputValue(): string;
    constructor();
    onKeyup($event: any): void;
    onKeydown($event?: any): void;
    ngAfterViewInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnDestroy(): void;
    emitAdditionalHelp(): void;
    /**
     * Função que atribui foco ao componente.
     *
     * Para utilizá-la é necessário ter a instância do componente no DOM, podendo ser utilizado o ViewChild da seguinte forma:
     *
     * ```
     * import { PoDatepickerComponent } from '@po-ui/ng-components';
     *
     * ...
     *
     * @ViewChild(PoDatepickerComponent, { static: true }) datepicker: PoDatepickerComponent;
     *
     * focusDatepicker() {
     *   this.datepicker.focus();
     * }
     * ```
     */
    focus(): void;
    getAdditionalHelpTooltip(): string;
    togglePicker(focusInput?: boolean): void;
    closeCalendar(focusInput?: boolean): void;
    dateSelected(event?: any): void;
    wasClickedOnPicker(event: any): void;
    hasInvalidClass(): boolean;
    getErrorPattern(): string;
    clear(): void;
    clearAndFocus(): void;
    eventOnBlur($event: any): void;
    eventOnClick($event: any): void;
    onKeyDown(event: KeyboardEvent): void;
    onKeyPress(event: any): void;
    formatToDate(value: any): string;
    refreshValue(value: Date): void;
    /**
     * Método que exibe `p-helper` ou executa a ação definida em `p-helper{eventOnClick}` ou em `p-additionalHelp`.
     * Para isso, será necessário configurar uma tecla de atalho utilizando o evento `p-keydown`.
     *
     * > Exibe ou oculta o conteúdo do componente `po-helper` quando o componente estiver com foco.
     *
     * ```
     * // Exemplo com p-label e p-helper
     * <po-datepicker
     *  #datepicker
     *  ...
     *  p-label="Label do datepicker"
     *  [p-helper]="helperOptions"
     *  (p-keydown)="onKeyDown($event, datepicker)"
     * ></po-datepicker>
     * ```
     * ```
     * ...
     * onKeyDown(event: KeyboardEvent, inp: PoDatepickerComponent): void {
     *  if (event.code === 'F9') {
     *    inp.showAdditionalHelp();
     *  }
     * }
     * ```
     */
    showAdditionalHelp(): boolean;
    private handleSpecialModes;
    private processValue;
    private handleDateInstance;
    private handleIsoString;
    private clearValue;
    private resetInput;
    private finalizeWrite;
    writeValue(value: any): void;
    isValidDateIso(value: string): boolean;
    isValidExtendedIso(value: any): boolean;
    hasOverlayClass(element: any): any;
    verifyErrorAsync(value: any): void;
    verifyMobile(): RegExpMatchArray;
    private handleMonthYearKeyup;
    private handleYearKeyup;
    private handleMonthYearBlur;
    private handleYearBlur;
    private applyMonthYearValue;
    private applyYearValue;
    private parseMonthYearInput;
    private syncCalendarMonthYear;
    private syncCalendarYear;
    private writeMonthYearValue;
    private writeYearValue;
    private controlChangeEmitter;
    private isValidInputForMode;
    private hasAttrCalendar;
    private initializeListeners;
    private isAdditionalHelpEventTriggered;
    private isFocusOnFirstCombo;
    private isFocusOnLastCombo;
    private readonly onScroll;
    private removeListeners;
    private setDialogPickerStyleDisplay;
    private setCalendarPosition;
    protected adjustCalendarPosition(): void;
    handleCleanKeyboardTab(event: KeyboardEvent): void;
    private shouldHandleTab;
    private focusCalendar;
    onCalendarKeyDown(event: KeyboardEvent): void;
    setHelper(label?: string, additionalHelpTooltip?: string): {
        hideAdditionalHelp: boolean;
        helperSettings?: any;
    };
}
