import { NavigationFailure } from 'vue-router';
import { MenuItemClicked, ScrollbarProps } from 'element-plus';
import { EpPropFinalized, EpPropMergeType } from 'element-plus/es/utils';
import { PlusSidebarSelfProps as PlusSidebarProps } from './type';
import { PlusRouteRecordRaw, RenderTypes, Mutable } from 'plus-pro-components/es/types';
import { ComputedRef, DefineComponent, Ref, CreateComponentPublicInstance, ExtractPropTypes, Component, ComputedOptions, MethodOptions, VNode, RendererNode, RendererElement, ComponentOptionsMixin, VNodeProps, AllowedComponentProps, ComponentCustomProps, PublicProps, PropType } from 'vue';

declare const _default: __VLS_WithTemplateSlots< DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<PlusSidebarProps>, {
    routes: () => never[];
    scrollbarProps: () => {};
    collapse: boolean;
    renderMenuItem: undefined;
    renderSubMenuItem: undefined;
    renderTitle: undefined;
    renderMenuExtra: undefined;
    /**
     * 菜单的宽度
     * @deprecated 0.1.20
     */
    width: number;
    defaultActive: undefined;
}>, {
    collapse: Ref<boolean>;
    toggleCollapse: () => void;
    plusSidebarInstance: Ref< CreateComponentPublicInstance<Readonly< ExtractPropTypes<{
        readonly mode: EpPropFinalized<StringConstructor, "vertical" | "horizontal", unknown, "vertical", boolean>;
        readonly defaultActive: EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
        readonly defaultOpeneds: EpPropFinalized<(new (...args: any[]) => string[]) | (() => string[]) | ((new (...args: any[]) => string[]) | (() => string[]))[], unknown, unknown, () => [], boolean>;
        readonly uniqueOpened: BooleanConstructor;
        readonly router: BooleanConstructor;
        readonly menuTrigger: EpPropFinalized<StringConstructor, "hover" | "click", unknown, "hover", boolean>;
        readonly collapse: BooleanConstructor;
        readonly backgroundColor: StringConstructor;
        readonly textColor: StringConstructor;
        readonly activeTextColor: StringConstructor;
        readonly closeOnClickOutside: BooleanConstructor;
        readonly collapseTransition: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
        readonly ellipsis: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
        readonly popperOffset: EpPropFinalized<NumberConstructor, unknown, unknown, 6, boolean>;
        readonly ellipsisIcon: EpPropFinalized<(new (...args: any[]) => (string | Component<any, any, any, ComputedOptions, MethodOptions, {}, any>) & {}) | (() => string | Component<any, any, any, ComputedOptions, MethodOptions, {}, any>) | ((new (...args: any[]) => (string | Component<any, any, any, ComputedOptions, MethodOptions, {}, any>) & {}) | (() => string | Component<any, any, any, ComputedOptions, MethodOptions, {}, any>))[], unknown, unknown, () => any, boolean>;
        readonly popperEffect: EpPropFinalized<StringConstructor, "dark" | "light", unknown, "dark", boolean>;
        readonly popperClass: StringConstructor;
        readonly showTimeout: EpPropFinalized<NumberConstructor, unknown, unknown, 300, boolean>;
        readonly hideTimeout: EpPropFinalized<NumberConstructor, unknown, unknown, 300, boolean>;
    }>> & {
        onClose?: ((index: string, indexPath: string[]) => any) | undefined;
        onSelect?: ((index: string, indexPath: string[], item: MenuItemClicked, routerResult?: Promise<void | NavigationFailure> | undefined) => any) | undefined;
        onOpen?: ((index: string, indexPath: string[]) => any) | undefined;
    }, () => VNode<RendererNode, RendererElement, {
        [key: string]: any;
    }>, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
        close: (index: string, indexPath: string[]) => boolean;
        open: (index: string, indexPath: string[]) => boolean;
        select: (index: string, indexPath: string[], item: MenuItemClicked, routerResult?: Promise<void | NavigationFailure> | undefined) => boolean;
    }, VNodeProps & AllowedComponentProps & ComponentCustomProps & Readonly< ExtractPropTypes<{
        readonly mode: EpPropFinalized<StringConstructor, "vertical" | "horizontal", unknown, "vertical", boolean>;
        readonly defaultActive: EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
        readonly defaultOpeneds: EpPropFinalized<(new (...args: any[]) => string[]) | (() => string[]) | ((new (...args: any[]) => string[]) | (() => string[]))[], unknown, unknown, () => [], boolean>;
        readonly uniqueOpened: BooleanConstructor;
        readonly router: BooleanConstructor;
        readonly menuTrigger: EpPropFinalized<StringConstructor, "hover" | "click", unknown, "hover", boolean>;
        readonly collapse: BooleanConstructor;
        readonly backgroundColor: StringConstructor;
        readonly textColor: StringConstructor;
        readonly activeTextColor: StringConstructor;
        readonly closeOnClickOutside: BooleanConstructor;
        readonly collapseTransition: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
        readonly ellipsis: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
        readonly popperOffset: EpPropFinalized<NumberConstructor, unknown, unknown, 6, boolean>;
        readonly ellipsisIcon: EpPropFinalized<(new (...args: any[]) => (string | Component<any, any, any, ComputedOptions, MethodOptions, {}, any>) & {}) | (() => string | Component<any, any, any, ComputedOptions, MethodOptions, {}, any>) | ((new (...args: any[]) => (string | Component<any, any, any, ComputedOptions, MethodOptions, {}, any>) & {}) | (() => string | Component<any, any, any, ComputedOptions, MethodOptions, {}, any>))[], unknown, unknown, () => any, boolean>;
        readonly popperEffect: EpPropFinalized<StringConstructor, "dark" | "light", unknown, "dark", boolean>;
        readonly popperClass: StringConstructor;
        readonly showTimeout: EpPropFinalized<NumberConstructor, unknown, unknown, 300, boolean>;
        readonly hideTimeout: EpPropFinalized<NumberConstructor, unknown, unknown, 300, boolean>;
    }>> & {
        onClose?: ((index: string, indexPath: string[]) => any) | undefined;
        onSelect?: ((index: string, indexPath: string[], item: MenuItemClicked, routerResult?: Promise<void | NavigationFailure> | undefined) => any) | undefined;
        onOpen?: ((index: string, indexPath: string[]) => any) | undefined;
    }, {
        readonly ellipsis: EpPropMergeType<BooleanConstructor, unknown, unknown>;
        readonly collapse: boolean;
        readonly mode: EpPropMergeType<StringConstructor, "vertical" | "horizontal", unknown>;
        readonly showTimeout: number;
        readonly hideTimeout: number;
        readonly defaultActive: string;
        readonly defaultOpeneds: string[];
        readonly menuTrigger: EpPropMergeType<StringConstructor, "hover" | "click", unknown>;
        readonly collapseTransition: EpPropMergeType<BooleanConstructor, unknown, unknown>;
        readonly popperOffset: number;
        readonly ellipsisIcon: EpPropMergeType<(new (...args: any[]) => (string | Component<any, any, any, ComputedOptions, MethodOptions, {}, any>) & {}) | (() => string | Component<any, any, any, ComputedOptions, MethodOptions, {}, any>) | ((new (...args: any[]) => (string | Component<any, any, any, ComputedOptions, MethodOptions, {}, any>) & {}) | (() => string | Component<any, any, any, ComputedOptions, MethodOptions, {}, any>))[], unknown, unknown>;
        readonly popperEffect: EpPropMergeType<StringConstructor, "dark" | "light", unknown>;
        readonly uniqueOpened: boolean;
        readonly router: boolean;
        readonly closeOnClickOutside: boolean;
    }, true, {}, {}, {
        P: {};
        B: {};
        D: {};
        C: {};
        M: {};
        Defaults: {};
    }, Readonly< ExtractPropTypes<{
        readonly mode: EpPropFinalized<StringConstructor, "vertical" | "horizontal", unknown, "vertical", boolean>;
        readonly defaultActive: EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
        readonly defaultOpeneds: EpPropFinalized<(new (...args: any[]) => string[]) | (() => string[]) | ((new (...args: any[]) => string[]) | (() => string[]))[], unknown, unknown, () => [], boolean>;
        readonly uniqueOpened: BooleanConstructor;
        readonly router: BooleanConstructor;
        readonly menuTrigger: EpPropFinalized<StringConstructor, "hover" | "click", unknown, "hover", boolean>;
        readonly collapse: BooleanConstructor;
        readonly backgroundColor: StringConstructor;
        readonly textColor: StringConstructor;
        readonly activeTextColor: StringConstructor;
        readonly closeOnClickOutside: BooleanConstructor;
        readonly collapseTransition: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
        readonly ellipsis: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
        readonly popperOffset: EpPropFinalized<NumberConstructor, unknown, unknown, 6, boolean>;
        readonly ellipsisIcon: EpPropFinalized<(new (...args: any[]) => (string | Component<any, any, any, ComputedOptions, MethodOptions, {}, any>) & {}) | (() => string | Component<any, any, any, ComputedOptions, MethodOptions, {}, any>) | ((new (...args: any[]) => (string | Component<any, any, any, ComputedOptions, MethodOptions, {}, any>) & {}) | (() => string | Component<any, any, any, ComputedOptions, MethodOptions, {}, any>))[], unknown, unknown, () => any, boolean>;
        readonly popperEffect: EpPropFinalized<StringConstructor, "dark" | "light", unknown, "dark", boolean>;
        readonly popperClass: StringConstructor;
        readonly showTimeout: EpPropFinalized<NumberConstructor, unknown, unknown, 300, boolean>;
        readonly hideTimeout: EpPropFinalized<NumberConstructor, unknown, unknown, 300, boolean>;
    }>> & {
        onClose?: ((index: string, indexPath: string[]) => any) | undefined;
        onSelect?: ((index: string, indexPath: string[], item: MenuItemClicked, routerResult?: Promise<void | NavigationFailure> | undefined) => any) | undefined;
        onOpen?: ((index: string, indexPath: string[]) => any) | undefined;
    }, () => VNode<RendererNode, RendererElement, {
        [key: string]: any;
    }>, {}, {}, {}, {
        readonly ellipsis: EpPropMergeType<BooleanConstructor, unknown, unknown>;
        readonly collapse: boolean;
        readonly mode: EpPropMergeType<StringConstructor, "vertical" | "horizontal", unknown>;
        readonly showTimeout: number;
        readonly hideTimeout: number;
        readonly defaultActive: string;
        readonly defaultOpeneds: string[];
        readonly menuTrigger: EpPropMergeType<StringConstructor, "hover" | "click", unknown>;
        readonly collapseTransition: EpPropMergeType<BooleanConstructor, unknown, unknown>;
        readonly popperOffset: number;
        readonly ellipsisIcon: EpPropMergeType<(new (...args: any[]) => (string | Component<any, any, any, ComputedOptions, MethodOptions, {}, any>) & {}) | (() => string | Component<any, any, any, ComputedOptions, MethodOptions, {}, any>) | ((new (...args: any[]) => (string | Component<any, any, any, ComputedOptions, MethodOptions, {}, any>) & {}) | (() => string | Component<any, any, any, ComputedOptions, MethodOptions, {}, any>))[], unknown, unknown>;
        readonly popperEffect: EpPropMergeType<StringConstructor, "dark" | "light", unknown>;
        readonly uniqueOpened: boolean;
        readonly router: boolean;
        readonly closeOnClickOutside: boolean;
    }> | null>;
}, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
    "update:collapse": (collapse: boolean) => void;
    toggleCollapse: (collapse: boolean) => void;
}, string, PublicProps, Readonly< ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<PlusSidebarProps>, {
    routes: () => never[];
    scrollbarProps: () => {};
    collapse: boolean;
    renderMenuItem: undefined;
    renderSubMenuItem: undefined;
    renderTitle: undefined;
    renderMenuExtra: undefined;
    /**
     * 菜单的宽度
     * @deprecated 0.1.20
     */
    width: number;
    defaultActive: undefined;
}>>> & {
    "onUpdate:collapse"?: ((collapse: boolean) => any) | undefined;
    onToggleCollapse?: ((collapse: boolean) => any) | undefined;
}, {
    width: string | number;
    collapse: boolean;
    routes: PlusRouteRecordRaw[];
    renderTitle: (route: PlusRouteRecordRaw) => RenderTypes;
    renderMenuItem: (route: PlusRouteRecordRaw) => RenderTypes;
    renderSubMenuItem: (route: PlusRouteRecordRaw) => RenderTypes;
    defaultActive: string | ComputedRef<string> | Ref<string>;
    renderMenuExtra: (route: PlusRouteRecordRaw) => RenderTypes;
    scrollbarProps: Partial< Mutable<ScrollbarProps>>;
}, {}>, {
    "sidebar-extra"?(_: {}): any;
    "sidebar-item"?(_: any): any;
    "sidebar-sub"?(_: any): any;
    "sidebar-item-title"?(_: any): any;
}>;
export default _default;
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
type __VLS_TypePropsToRuntimeProps<T> = {
    [K in keyof T]-?: {} extends Pick<T, K> ? {
        type: PropType<__VLS_NonUndefinedable<T[K]>>;
    } : {
        type: PropType<T[K]>;
        required: true;
    };
};
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_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
