Files
ionic-framework/vue/src/interfaces.ts
2019-07-24 17:25:57 -04:00

90 lines
2.6 KiB
TypeScript

import Vue from 'vue';
import VueRouter from 'vue-router';
import { RouterDirection, HTMLStencilElement } from '@ionic/core';
import { RouterOptions } from 'vue-router/types/router';
declare module 'vue-router/types/router' {
interface VueRouter {
direction: RouterDirection;
directionOverride: RouterDirection | null;
transition: Promise<void>;
canGoBack(): boolean;
}
}
export interface HTMLVueElement extends HTMLElement {
__vue__: Vue;
}
export interface VueWindow extends Window {
Vue: typeof Vue;
VueRouter: typeof VueRouter;
disableIonicTransitions: boolean;
}
export interface WebpackFunction extends Function {
cid: number;
}
export interface EsModule extends Object {
__esModule?: boolean;
[Symbol.toStringTag]: string;
}
export interface IonicGlobal {
config?: any;
ael?: (elm: any, eventName: string, cb: (ev: Event) => void, opts: any) => void;
raf?: (ts: number) => void;
rel?: (elm: any, eventName: string, cb: (ev: Event) => void, opts: any) => void;
}
export interface IonicWindow extends Window {
Ionic: IonicGlobal;
}
export interface FrameworkDelegate {
attachViewToDom(parentElement: HTMLElement, component: HTMLElement | WebpackFunction | object | Vue, opts?: object, classes?: string[]): Promise<HTMLElement>;
removeViewFromDom(parentElement: HTMLElement, childElement: HTMLVueElement): Promise<void>;
}
export interface IonBackButton extends HTMLStencilElement {
defaultHref?: string;
}
export interface IonRouterOutlet extends HTMLStencilElement {
commit(enterinEl: HTMLElement, leavingEl: HTMLElement | undefined, opts?: object | undefined): Promise<boolean>;
}
export interface ApiCache {
[key: string]: any;
}
export interface RouterArgs extends RouterOptions {
direction?: RouterDirection;
viewCount?: number;
}
export interface ProxyControllerInterface {
create(opts: object): Promise<HTMLElement>;
dismiss(): Promise<void>;
getTop(): Promise<HTMLElement>;
}
export interface ProxyDelegateOptions extends Object {
[key: string]: any;
delegate?: FrameworkDelegate;
}
export interface ProxyMenuControllerInterface {
open(menuId?: string): Promise<boolean>;
close(menuId?: string): Promise<boolean>;
toggle(menuId?: string): Promise<boolean>;
enable(shouldEnable: boolean, menuId?: string): Promise<HTMLElement>;
swipeGesture(shouldEnable: boolean, menuId?: string): Promise<HTMLElement>;
isOpen(menuId?: string): Promise<boolean>;
isEnabled(menuId?: string): Promise<boolean>;
get(menuId?: string): Promise<HTMLElement>;
getOpen(): Promise<HTMLElement>;
getMenus(): Promise<HTMLElement>;
}