/**
 * Copyright (c) 2022 - present TinyVue Authors.
 * Copyright (c) 2022 - present Huawei Cloud Computing Technologies Co., Ltd.
 *
 * Use of this source code is governed by an MIT-style license.
 *
 * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL,
 * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR
 * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS.
 *
 */
import Vue from 'vue';
import * as hooks from 'vue';
import { emitter, bindFilter, getElementCssClass, getElementStatusClass } from '../utils';
declare const Teleport: any;
export { emitter, bindFilter, getElementCssClass, getElementStatusClass, Teleport };
export declare const defineAsyncComponent: typeof Vue.defineAsyncComponent;
export declare const markRaw: (ref: any) => any;
export declare const renderComponent: ({ view, component, props, context: { attrs, listeners: on, slots }, extend }: {
    view?: any;
    component?: any;
    props: any;
    context: {
        attrs: any;
        listeners: any;
        slots: any;
    };
    extend?: {} | undefined;
}) => () => Vue.VNode<Vue.RendererNode, Vue.RendererElement, {
    [key: string]: any;
}>;
export declare const rootConfig: () => Vue.ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, Vue.ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string, {}>, {}, {}> | null | undefined;
export declare const getComponentName: () => any;
export declare const appContext: () => typeof Vue;
export declare const appProperties: () => any;
export declare const useRouter: (instance?: Vue.ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, Vue.ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string, {}>, {}, {}> | null | undefined) => {
    route: any;
    router: any;
};
export declare const tools: (context: any, mode: any) => {
    framework: string;
    vm: any;
    emit: any;
    emitter: () => {
        emit(eventName: any): void;
        on: (event: any, callback: any, once?: boolean) => void;
        once(event: any, callback: any): void;
        off(event: any, callback: any): void;
    };
    route: any;
    router: any;
    dispatch: (componentName: any, eventName: any, params: any) => void;
    broadcast: (componentName: any, eventName: any, params: any) => void;
    parentHandler: (handler: any) => {} | undefined;
    childrenHandler: (handler: any) => any;
    i18n: any;
    refs: {};
    slots: any;
    scopedSlots: any;
    attrs: any;
    parent: any;
    nextTick: typeof Vue.nextTick;
    constants: any;
    mode: any;
    isPCMode: boolean;
    isMobileMode: boolean;
    service: any;
    getService: () => any;
    setParentAttribute: ({ name, value }: {
        name: any;
        value: any;
    }) => void;
    defineInstanceProperties: (props: any) => void;
    defineParentInstanceProperties: (props: any) => void;
};
export declare const directive: (directives: any) => any;
export declare const parseVnode: (vnode: any) => any;
export declare const isEmptyVnode: (vnode: any) => boolean;
export declare const h: typeof Vue.h;
export declare const createComponentFn: (design: any) => ({ component, propsData, el }: {
    component: any;
    propsData: any;
    el: any;
}) => any;
export declare const defineComponent: typeof Vue.defineComponent;
export default hooks;
export declare const isVue2 = true;
export declare const isVue3 = false;
export declare const isVnode: typeof Vue.isVNode;
export declare const KeepAlive: any;
export type { PropType, ExtractPropTypes, DefineComponent, ComponentPublicInstance, SetupContext, ComputedRef } from 'vue';
