import { Route } from './model/Route';
import { Action } from './model/Action';
import { Page } from './model/Page';
export interface ModelsObject {
    userPages: {
        [key: string]: {
            pageClass: new () => Page;
            pages: Array<Page>;
        };
    };
    actions: Array<Action>;
    routes: Array<Route>;
}
export interface SenquenceFunction {
    (next: Function): any;
}
export interface PageTransitionObject {
    fromPageDisappear: SenquenceFunction;
    toPageAppear: SenquenceFunction;
}
export interface InitAppObject {
    index: string;
    root?: string;
    alwaysReload?: boolean;
    recordHistory?: boolean;
    pageTransition?: PageTransitionObject;
    dataSplit?: {
        start: string;
        key: string;
        item: string;
    };
}
export interface HashData {
    path: string;
    data: any;
    copyIndex?: number;
    pageIndex?: number;
}
export interface RouteData {
    [index: string]: new (pageID?: string) => Page;
}
export interface ActionData {
    [index: string]: string;
}
export interface ContextType {
    rootContainer: HTMLElement;
    currentAction: Action;
    nextAction: Action;
    data: any;
}
