import { EventEmitter } from '../../stencil-public-runtime';
import { Gesture, Animation, GestureDetail, ViewController, TransitionDoneFn, NavOptions } from '@ionic/core';
import { PushNavOptions } from './zt-bottom-dawer';
export type ZTPositionDrawer = {
  index: number;
  name: string;
  distanceTo: "BOTTOM" | "TOP";
  distance: number;
  distanceToTop: number;
  previousPosition: ZTPositionDrawer;
  nextPosition: ZTPositionDrawer;
};
export type ZTHTMLElementsDrawer = {
  drawer: HTMLElement;
  gestureTarget: HTMLElement;
  content: HTMLElement;
};
type ResultgetPositionByPosY = {
  newPosition: ZTPositionDrawer;
  close: boolean;
};
export declare class ZTBottomDrawer {
  el: HTMLElement;
  animation: Animation;
  gesture?: Gesture;
  _tagNameComponetActive: string;
  _positions: ZTPositionDrawer[];
  _position: ZTPositionDrawer;
  _htmlElements: ZTHTMLElementsDrawer;
  nav: HTMLIonNavElement;
  positionName: string;
  hideOnPositionZero: boolean;
  fixCurrentPosition: boolean;
  disableGesture: boolean;
  allowScroll: boolean;
  positions: string;
  hidden: boolean;
  coefAnimationTime: number;
  ztChangePositionEvent: EventEmitter<{
    positionName: string;
    lastPositionName: string;
    htmlElements: ZTHTMLElementsDrawer;
  }>;
  ztHideEvent: EventEmitter<ZTHTMLElementsDrawer>;
  ztNavDidChange: EventEmitter<any>;
  ztNavWillChange: EventEmitter<any>;
  setDisableGesture(value: boolean): void;
  setAllowScroll(value: boolean): void;
  getNav(): Promise<HTMLIonNavElement>;
  goBack(amountBack?: number, opts?: NavOptions | null | undefined, done?: TransitionDoneFn | undefined): Promise<Boolean>;
  goBackToRoot(opts?: NavOptions | null | undefined, done?: TransitionDoneFn | undefined): Promise<Boolean>;
  goBackToIndex(index: number, opts?: NavOptions | null | undefined, done?: TransitionDoneFn | undefined): Promise<Boolean>;
  getNavActive(): Promise<ViewController>;
  getNavCurrentComponent(): Promise<any>;
  isElement(o: any): boolean;
  saveStateInActiveComponent(): Promise<void>;
  ionContent: HTMLIonContentElement;
  currentComponent: any;
  navegando: boolean;
  pushNav(component: string | HTMLElement, propsComponent: any, options: PushNavOptions): Promise<boolean>;
  getActiveComponentTagName(): Promise<string>;
  getCurrentIndex(): Promise<number>;
  navDidChange(): Promise<void>;
  initActiveContentNav(contentActive: any): Promise<void>;
  componentDidLoad(): Promise<void>;
  safeAreaTop: number;
  safeAreaBottom: number;
  addGesture(target: HTMLElement): void;
  maxTop: number;
  setPositions(newPositions: string): void;
  setAnimation(): Promise<void>;
  getCurrrentPositionDto(): Promise<ZTPositionDrawer>;
  getPositionByName(name: string): Promise<ZTPositionDrawer>;
  getPositionByIndex(index: number): Promise<ZTPositionDrawer>;
  hide(): Promise<void>;
  show(positionName: string): Promise<void>;
  deltaChangeSate: number;
  getPositionByPosY(posY: number, direccion: "UP" | "DOWN"): ResultgetPositionByPosY;
  startPosTopMove: number;
  enTouchMove: Boolean;
  cancelMove: Boolean;
  onStart(ev: GestureDetail): void;
  previusPositionY: number;
  lastPositionY: number;
  moveFast: boolean;
  moveFastAnimationProgress: Promise<void> | undefined;
  lastCalc: number;
  onMove(ev: GestureDetail): Promise<void>;
  onEnd(ev: GestureDetail): Promise<boolean>;
  getDirectionGesture(): "UP" | "DOWN";
  changeStateByGesture(ev: GestureDetail): Promise<void>;
  windowh: number;
  getWHWindow(ignoreCache?: boolean): {
    height: number;
    width: any;
  };
  setPositionByName(name: string, force?: boolean): Promise<void>;
  setPosition(value: ZTPositionDrawer, force?: boolean): Promise<void>;
  getDuration(delta: number): number;
  ultimoValuePosY: number;
  animateRoloPromise: Promise<void> | undefined;
  intervalAnimation: number;
  posyAnimate: number;
  animateRolo(initialY: number, finalY: number): Promise<void>;
  setTranslateY(posY: number, applyAnimation?: boolean): Promise<void>;
  setHeightContainer(heightOf: "CONTENT" | "MAX", ignorarCacheWindowHeight?: boolean): void;
  refreshSizeContent(): Promise<void>;
  setScrollToTop(duration?: number): Promise<void>;
  render(): any;
  navWillchange(): void;
}
export {};
