import { EventEmitter } from '../../stencil-public-runtime';
import { BalCalendarCell, BalDateCallback } from './bal-datepicker.type';
export declare class Datepicker {
  private inputElement;
  private dropdownElement;
  element: HTMLElement;
  isDropdownOpen: boolean;
  pointerMonth: number;
  pointerYear: number;
  pointerDay: number;
  /**
   * If `true` the component uses the whole width.
   */
  locale: 'en' | 'de' | 'fr' | 'it';
  /**
   * The tabindex of the control.
   */
  balTabindex: number;
  /**
   * If `true` the component uses the whole width.
   */
  expanded: boolean;
  /**
   * Set this to `true` when the component is placed on a dark background.
   */
  inverted: boolean;
  /**
   * If `true` the use can only select a date.
   */
  readonly: boolean;
  /**
   * If `true` the component is diabled.
   */
  disabled: boolean;
  /**
   * Defines the placeholder of the input element.
   */
  placeholder: string;
  /**
   * Selected option value.
   */
  value: Date;
  /**
   * Latest date available for selection
   */
  maxDate: Date;
  /**
   * Earliest date available for selection
   */
  minDate: Date;
  /**
   * Closes the datepicker dropdown after selection
   */
  closeOnSelect: boolean;
  /**
   * If `true` the datepicker only open on click of the icon
   */
  triggerIcon: boolean;
  /**
   * Earliest year available for selection
   */
  minYearProp: number | undefined;
  /**
   * Latest year available for selection
   */
  maxYearProp: number | undefined;
  /**
   * Callback to determine which date in the datepicker should be selectable.
   */
  filter: BalDateCallback;
  /**
   * Emitted when a option got selected.
   */
  balChange: EventEmitter<any>;
  /**
   * Emitted when a keyboard input occurred.
   */
  balInput: EventEmitter<string>;
  /**
   * Emitted when the input loses focus.
   */
  balBlur: EventEmitter<FocusEvent>;
  /**
   * Emitted when the input has focus.
   */
  balFocus: EventEmitter<FocusEvent>;
  /**
   * Selects an option
   */
  select(date: Date): Promise<void>;
  valueWatcher(newDate: Date, oldDate: Date): void;
  componentWillLoad(): void;
  get pointerDate(): Date;
  get minYear(): number;
  get maxYear(): number;
  get years(): number[];
  get weekDays(): string[];
  get firstDateOfBox(): Date;
  get calendarGrid(): BalCalendarCell[][];
  private onIconClick;
  private onInputClick;
  private onDropdownChange;
  private onInput;
  private updateFromValue;
  private parseAndSetDate;
  private previousMonth;
  private nextMonth;
  private handleMonthSelect;
  private handleYearSelect;
  private onClickDateCell;
  private onInputKeyDown;
  private onInputBlur;
  render(): any;
  renderInput(): any;
  renderBody(): any;
  renderWeekDayHeader(): any;
  renderHeader(): any;
}
