import { RouteConfig } from 'vue-router'; import { Module } from 'vuex'; import { StateInterface } from 'src/store'; declare namespace FG_Plugin { interface ShortCutLink { link: string; icon: string; permissions?: string[]; } interface PluginRouteConfig extends RouteConfig { shortcut?: boolean; title: string; icon: string; children?: PluginRouteConfig[]; meta?: {permissions?: string[]} } interface Plugin { name: string; mainRoutes?: PluginRouteConfig[]; outRoutes?: PluginRouteConfig[]; store?: Map>; requiredModules: string[]; version: string; } interface PluginMainLink extends PluginChildLink { children: PluginChildLink[]; } interface PluginChildLink { name: string; title: string; link: string; icon: string; permissions?: string[] } interface LoadedPlugin { name: string; version: string; } interface LoadedPlugins { plugins: LoadedPlugin[]; routes: RouteConfig[]; mainLinks: PluginMainLink[]; shortcuts: ShortCutLink[]; shortcutsOut: ShortCutLink[]; } }