import { EventEmitter } from '../../stencil-public-runtime';
interface ErrorMessage {
  invalid: boolean;
  message: string;
}
export declare class Datepicker {
  label: string;
  enableRange: boolean;
  enableTime: boolean;
  doubleCalendar: boolean;
  showCalendarIcon: boolean;
  inline: boolean;
  format: string;
  value: string;
  displayFormat: string;
  /**
   *  Flag to disable button
   */
  disabled: boolean;
  /**
   * The minimum date that a user can start picking from (inclusive).
   */
  minDate: string;
  /**
   * The maximum date that a user can pick to (inclusive).
   */
  maxDate: string;
  /**
   * use date picker as an icon instead of default input.
   */
  useAsIcon: boolean;
  valueChanged: EventEmitter;
  isInvalid: EventEmitter;
  el: HTMLElement;
  selectedDate: string;
  /**
   * Error Message for invalid date
   */
  errorMessage: ErrorMessage;
  private flatpickr;
  componentDidLoad(): Promise<void>;
  /**
   * calculate the time zone offset to add to Date
   * This is necessary because we are trying to keep the externally provided UTC date
   * displayed properly in the user's local date without losing offset hours
   *
   * @param date date string
   * @returns Date
   * @example
   * addTimeZoneOffset('2019-10-20T00:00:00.000Z')
   * // => Sat Apr 20 2019 00:00:00 GMT-0400 (Eastern Daylight Time)
   */
  addTimeZoneOffset(date: string): Date;
  /**
   * calculate the time zone offset to subtract from Date
   * This is necessary because we are trying to keep the internally date
   * returned properly in the UTC date without losing offset hours
   * @param date date string
   * @returns Date
   * @example
   * subtractTimeZoneOffset(Sun Oct 20 2019 23:59:59 GMT-0400 (Eastern Daylight Time))
   * // => Sun Oct 20 2019 19:59:59 GMT-0400 (Eastern Daylight Time)
   */
  subtractTimeZoneOffset(date: string): Date;
  initFlatpickr(): Promise<void>;
  onValueChanged(value: any): void;
  /**
   * to trigger setting of the minDate in config
   * @param date
   */
  onMinDateChange(date: any): void;
  /**
   * to trigger setting of the maxDate in config
   * @param date
   */
  onMaxDateChange(date: any): void;
  /**
   * to trigger setting of enableTime on change
   * @param enableTime
   */
  onEnableTime(enableTime: any): void;
  handleDateChanged(date: Date): void;
  /**
   * to trigger setting of the disable in config
   * @param disable
   */
  onDisableChanged(disabled: any): void;
  validateDate(date: Date): {
    invalid: boolean;
    message: any;
  };
  render(): any;
}
export {};
