import type { NavigationItem, SubNavigationItem } from '../types/Plugins';
import type { NavigationUrlPayload } from '../intercom/types';
export interface INavigationModule extends Omit<NavigationItem, "children"> {
    icon?: string;
    path: string;
    lastPath?: string;
    route?: string;
    disabled?: boolean;
    children: INavigationModule[];
}
export declare const usePlugins: import("pinia").StoreDefinition<"plugins", import("pinia")._UnwrapAll<Pick<{
    plugins: import("vue").Ref<NavigationItem[]>;
    topBarItem: import("vue").Ref<NavigationItem[]>;
    filter: import("vue").Ref<string>;
    modules: import("vue").ComputedRef<INavigationModule[]>;
    filteredModules: import("vue").WritableComputedRef<INavigationModule[]>;
    isEmpty: import("vue").ComputedRef<boolean>;
    activePlugin: import("vue").Ref<NavigationItem>;
    activeModule: import("vue").Ref<INavigationModule>;
    activeRoutePath: import("vue").WritableComputedRef<string>;
    isActivePlugin: ({ namespace }: NavigationItem | INavigationModule) => boolean;
    isActiveSubRoute: (module: INavigationModule) => boolean;
    findByVendorAndName: (vendor: string, name: string) => NavigationItem;
    setChildren: ({ vendor, name }: NavigationItem, children?: SubNavigationItem[]) => void;
    addChild: ({ vendor, name }: Pick<NavigationItem, "vendor" | "name">, item: SubNavigationItem) => void;
    updateChild: ({ vendor, name }: NavigationItem, item: Partial<SubNavigationItem>) => void;
    removeChild: ({ vendor, name }: NavigationItem, item: Partial<SubNavigationItem>) => void;
    updateNavigation: ({ vendor, name }: NavigationItem, updates: Partial<NavigationItem>) => void;
    navigateTo: (module: INavigationModule, child: INavigationModule) => void;
    setUrl: ({ url, vendor, name }: NavigationUrlPayload) => Promise<void | import("vue-router").NavigationFailure>;
    requestedNavigation: import("vue").Ref<any>;
    fetchModuleNavigation: () => Promise<void>;
}, "filter" | "plugins" | "topBarItem" | "filteredModules" | "activePlugin" | "activeModule" | "activeRoutePath" | "requestedNavigation">>, Pick<{
    plugins: import("vue").Ref<NavigationItem[]>;
    topBarItem: import("vue").Ref<NavigationItem[]>;
    filter: import("vue").Ref<string>;
    modules: import("vue").ComputedRef<INavigationModule[]>;
    filteredModules: import("vue").WritableComputedRef<INavigationModule[]>;
    isEmpty: import("vue").ComputedRef<boolean>;
    activePlugin: import("vue").Ref<NavigationItem>;
    activeModule: import("vue").Ref<INavigationModule>;
    activeRoutePath: import("vue").WritableComputedRef<string>;
    isActivePlugin: ({ namespace }: NavigationItem | INavigationModule) => boolean;
    isActiveSubRoute: (module: INavigationModule) => boolean;
    findByVendorAndName: (vendor: string, name: string) => NavigationItem;
    setChildren: ({ vendor, name }: NavigationItem, children?: SubNavigationItem[]) => void;
    addChild: ({ vendor, name }: Pick<NavigationItem, "vendor" | "name">, item: SubNavigationItem) => void;
    updateChild: ({ vendor, name }: NavigationItem, item: Partial<SubNavigationItem>) => void;
    removeChild: ({ vendor, name }: NavigationItem, item: Partial<SubNavigationItem>) => void;
    updateNavigation: ({ vendor, name }: NavigationItem, updates: Partial<NavigationItem>) => void;
    navigateTo: (module: INavigationModule, child: INavigationModule) => void;
    setUrl: ({ url, vendor, name }: NavigationUrlPayload) => Promise<void | import("vue-router").NavigationFailure>;
    requestedNavigation: import("vue").Ref<any>;
    fetchModuleNavigation: () => Promise<void>;
}, "isEmpty" | "modules">, Pick<{
    plugins: import("vue").Ref<NavigationItem[]>;
    topBarItem: import("vue").Ref<NavigationItem[]>;
    filter: import("vue").Ref<string>;
    modules: import("vue").ComputedRef<INavigationModule[]>;
    filteredModules: import("vue").WritableComputedRef<INavigationModule[]>;
    isEmpty: import("vue").ComputedRef<boolean>;
    activePlugin: import("vue").Ref<NavigationItem>;
    activeModule: import("vue").Ref<INavigationModule>;
    activeRoutePath: import("vue").WritableComputedRef<string>;
    isActivePlugin: ({ namespace }: NavigationItem | INavigationModule) => boolean;
    isActiveSubRoute: (module: INavigationModule) => boolean;
    findByVendorAndName: (vendor: string, name: string) => NavigationItem;
    setChildren: ({ vendor, name }: NavigationItem, children?: SubNavigationItem[]) => void;
    addChild: ({ vendor, name }: Pick<NavigationItem, "vendor" | "name">, item: SubNavigationItem) => void;
    updateChild: ({ vendor, name }: NavigationItem, item: Partial<SubNavigationItem>) => void;
    removeChild: ({ vendor, name }: NavigationItem, item: Partial<SubNavigationItem>) => void;
    updateNavigation: ({ vendor, name }: NavigationItem, updates: Partial<NavigationItem>) => void;
    navigateTo: (module: INavigationModule, child: INavigationModule) => void;
    setUrl: ({ url, vendor, name }: NavigationUrlPayload) => Promise<void | import("vue-router").NavigationFailure>;
    requestedNavigation: import("vue").Ref<any>;
    fetchModuleNavigation: () => Promise<void>;
}, "removeChild" | "setUrl" | "isActivePlugin" | "isActiveSubRoute" | "findByVendorAndName" | "setChildren" | "addChild" | "updateChild" | "updateNavigation" | "navigateTo" | "fetchModuleNavigation">>;
