import { VNode, Component } from "vue";
import { EasingFunction, SupportedEaseNameToCubicBezier } from "@zyzgroup/core-web";
export type SupportedRouteEffect = "moveToLeft" | "moveToRight" | "moveToTop" | "moveToBottom" | "moveFromLeftPrevFade" | "moveFromRightPrevFade" | "moveFromTopPrevFade" | "moveFromBottomPrevFade" | "moveToLeftFade" | "moveToRightFade" | "moveToTopFade" | "moveToBottomFade" | "moveToLeftEasing" | "moveToRightEasing" | "moveToTopEasing" | "moveToBottomEasing" | "moveFromLeftPrevScaleToSmall" | "moveFromRightPrevScaleToSmall" | "moveFromTopPrevScaleToSmall" | "moveFromBottomPrevScaleToSmall" | "scaleSmall" | "scaleLarge" | "scaleToLargePrevScaleToSmall" | "scaleFromSmallPrevMoveToLeft" | "scaleFromSmallPrevMoveToRight" | "scaleFromSmallPrevMoveToTop" | "scaleFromSmallPrevMoveToBottom" | "glueToLeft" | "glueToRight" | "glueToTop" | "glueToBottom" | "flipToLeft" | "flipToRight" | "flipToTop" | "flipToBottom" | "rotateFall" | "newspaper" | "moveFromLeftPrevPush" | "moveFromRightPrevPush" | "moveFromTopPrevPush" | "moveFromBottomPrevPush" | "pullFromLeftPrevPush" | "pullFromRightPrevPush" | "pullFromTopPrevPush" | "pullFromBottomPrevPush" | "moveFromLeftFadePrevFold" | "moveFromRightFadePrevFold" | "moveFromTopFadePrevFold" | "moveFromBottomFadePrevFold" | "moveToLeftFadePrevUnfold" | "moveToRightFadePrevUnfold" | "moveToTopFadePrevUnfold" | "moveToBottomFadePrevUnfold" | "rotateRoomLeftIn" | "rotateRoomRightIn" | "rotateRoomTopIn" | "rotateRoomBottomIn" | "rotateCubeLeftIn" | "rotateCubeRightIn" | "rotateCubeTopIn" | "rotateCubeBottomIn" | "rotateCarouselLeftIn" | "rotateCarouselRightIn" | "rotateCarouselTopIn" | "rotateCarouselBottomIn" | "rotateSidesIn" | "rotateSlideIn";
type VNodeChildAtom = VNode | string | number | boolean | null | undefined | void;
type VNodeArrayChildren = Array<VNodeArrayChildren | VNodeChildAtom>;
type RawChildren = string | number | boolean | VNode | VNodeArrayChildren | (() => any);
type RawSlots = {
    [name: string]: unknown;
    $stable?: boolean;
};
export type PageArgument = {
    pageKey?: string;
    component: VNode | Component | HTMLElement;
    attributes?: Record<string, any>;
    child?: RawChildren | RawSlots;
};
declare function reset(resetPages?: PageArgument[]): void;
declare function push(page: PageArgument): void;
declare function pop(): void;
declare function forward(): void;
declare function back(): void;
declare function goto(index: number, cb?: () => void): void;
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<{
    effect?: SupportedRouteEffect;
    duration?: number;
    easeFunction?: EasingFunction;
    timingFunction?: SupportedEaseNameToCubicBezier;
    delay?: number;
}>, {
    effect: string;
    duration: number;
    easeFunction: (amount: number) => number;
    timingFunction: string;
    delay: number;
}>>, {
    reset: typeof reset;
    push: typeof push;
    pop: typeof pop;
    forward: typeof forward;
    back: typeof back;
    goto: typeof goto;
    currentPageIndex: () => number;
    totalPages: () => number;
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
    routeChangeStart: (fromPageIndex: number, toPageIndex: number, totalPages: number) => void;
    routeChangeEnd: (fromPageIndex: number, toPageIndex: number, totalPages: number) => void;
    renderComplete: () => void;
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<{
    effect?: SupportedRouteEffect;
    duration?: number;
    easeFunction?: EasingFunction;
    timingFunction?: SupportedEaseNameToCubicBezier;
    delay?: number;
}>, {
    effect: string;
    duration: number;
    easeFunction: (amount: number) => number;
    timingFunction: string;
    delay: number;
}>>> & Readonly<{
    onRouteChangeStart?: (fromPageIndex: number, toPageIndex: number, totalPages: number) => any;
    onRouteChangeEnd?: (fromPageIndex: number, toPageIndex: number, totalPages: number) => any;
    onRenderComplete?: () => any;
}>, {
    duration: number;
    easeFunction: EasingFunction;
    effect: SupportedRouteEffect;
    timingFunction: SupportedEaseNameToCubicBezier;
    delay: number;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
export default _default;
type __VLS_WithDefaults<P, D> = {
    [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
        default: D[K];
    }> : P[K];
};
type __VLS_Prettify<T> = {
    [K in keyof T]: T[K];
} & {};
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
type __VLS_TypePropsToOption<T> = {
    [K in keyof T]-?: {} extends Pick<T, K> ? {
        type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
    } : {
        type: import('vue').PropType<T[K]>;
        required: true;
    };
};
