import { AfterViewInit, ElementRef, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';
import { PoDatepickerRange } from './interfaces/po-datepicker-range.interface';
import { PoDatepickerRangeBaseComponent } from './po-datepicker-range-base.component';
import { PoHelperComponent } from '../../po-helper';
import { PoButtonComponent } from '../../po-button';
/**
 * @docsExtends PoDatepickerRangeBaseComponent
 *
 * @example
 *
 * <example name="po-datepicker-range-basic" title="PO Datepicker Range Basic">
 *  <file name="sample-po-datepicker-range-basic/sample-po-datepicker-range-basic.component.html"> </file>
 *  <file name="sample-po-datepicker-range-basic/sample-po-datepicker-range-basic.component.ts"> </file>
 * </example>
 *
 * <example name="po-datepicker-range-labs" title="PO Datepicker Range Labs">
 *  <file name="sample-po-datepicker-range-labs/sample-po-datepicker-range-labs.component.html"> </file>
 *  <file name="sample-po-datepicker-range-labs/sample-po-datepicker-range-labs.component.ts"> </file>
 * </example>
 *
 * <example name="po-datepicker-range-vacations" title="PO Datepicker Range - Vacations Suggestion">
 *  <file name="sample-po-datepicker-range-vacations/sample-po-datepicker-range-vacations.component.html"> </file>
 *  <file name="sample-po-datepicker-range-vacations/sample-po-datepicker-range-vacations.component.ts"> </file>
 * </example>
 *
 * <example name="po-datepicker-range-vacations-reactive-form" title="PO Datepicker Range - Vacations Reactive Form">
 *  <file name="sample-po-datepicker-range-vacations-reactive-form/sample-po-datepicker-range-vacations-reactive-form.component.html">
 *  </file>
 *  <file name="sample-po-datepicker-range-vacations-reactive-form/sample-po-datepicker-range-vacations-reactive-form.component.ts">
 *  </file>
 * </example>
 */
export declare class PoDatepickerRangeComponent extends PoDatepickerRangeBaseComponent implements AfterViewInit, OnInit, OnDestroy, OnChanges {
    private controlPosition;
    private renderer;
    private cd;
    private poLanguageService;
    dateRangeField: ElementRef;
    endDateInput: ElementRef;
    startDateInput: ElementRef;
    iconCalendar: PoButtonComponent;
    calendarPicker: ElementRef;
    helperEl?: PoHelperComponent;
    iconClean: ElementRef<HTMLElement>;
    id: string;
    isCalendarVisible: boolean;
    private clickListener;
    private eventResizeListener;
    private poDatepickerRangeElement;
    get autocomplete(): "off" | "on";
    get enableCleaner(): boolean;
    get endDateInputName(): string;
    get endDateInputValue(): string;
    get getErrorMessage(): string;
    get isDateRangeInputUncompleted(): boolean;
    get isDirtyDateRangeInput(): boolean;
    get startDateInputName(): string;
    get startDateInputValue(): string;
    constructor();
    static getKeyCode(event: KeyboardEvent): number;
    static getTargetElement(event: any): any;
    static isValidKey(keyCode: number): boolean;
    ngAfterViewInit(): void;
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnDestroy(): void;
    clear(): void;
    clearAndFocus(): void;
    emitAdditionalHelp(): void;
    eventOnClick($event: any): 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 { PoDatepickerRangeComponent } from '@po-ui/ng-components';
     *
     * ...
     *
     * @ViewChild(PoDatepickerRangeComponent, { static: true }) datepickerRange: PoDatepickerRangeComponent;
     *
     * focusDatepickerRange() {
     *   this.datepickerRange.focus();
     * }
     * ```
     */
    focus(): void;
    getAdditionalHelpTooltip(): string;
    onBlur(event: any): void;
    onCalendarChange({ start, end }: {
        start: any;
        end: any;
    }): void;
    onFocus(event: any): void;
    onKeydown(event?: any): void;
    onKeyPress(event: any): void;
    onKeydownDatepickerRange($event?: any): void;
    onKeyup(event: any): void;
    resetDateRangeInputValidation(): 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-range
     *  #datepickerRange
     *  ...
     *  p-label="Label do datepickerRange
     *  [p-helper]="helperOptions"
     *  (p-keydown)="onKeyDown($event, datepickerRange)"
     * ></po-datepicker-range>
     * ```
     * ```
     * ...
     * onKeyDown(event: KeyboardEvent, inp: PoDatepickerRangeComponent): void {
     *  if (event.code === 'F9') {
     *    inp.showAdditionalHelp();
     *  }
     * }
     * ```
     */
    showAdditionalHelp(): boolean;
    toggleCalendar(): void;
    updateScreenByModel(model: PoDatepickerRange): void;
    onCalendarKeyDown(event: KeyboardEvent): void;
    setHelper(label?: string, additionalHelpTooltip?: string): {
        hideAdditionalHelp: boolean;
        helperSettings?: any;
    };
    setCalendarPosition(): void;
    private applyFocusOnDatePickerRangeField;
    private formatDate;
    private formatScreenToModel;
    private formatModelToScreen;
    private getDateRangeFormatValidation;
    private getValidatedModel;
    private hasAttrCalendar;
    private hasInvalidClass;
    private initializeListeners;
    private isAdditionalHelpEventTriggered;
    private isEqualBeforeValue;
    private isFocusOnFirstCombo;
    private isSetFocusOnBackspace;
    private onScroll;
    private removeFocusFromDatePickerRangeField;
    private setDateRangeInputValidation;
    private setFocus;
    private setFocusAndPosition;
    private focusOnElement;
    private removeListeners;
    private setFocusOnArrowLeft;
    private setFocusOnArrowRight;
    private setFocusOnBackspace;
    private setFocusOnStartDateCompleted;
    private updateModelWhenComplete;
    private updateModelByScreen;
    private verifyFormattedDates;
    private wasClickedOnPicker;
    closeCalendar(): void;
}
