import type { NavigationGuard, NavigationGuardNext, RouteLocationNormalized, Router } from 'vue-router'; import type { Ref } from 'vue'; export const access: { hasAccess: (accessId: string | number) => Promise; hasAccessSync: (accessId: string | number) => boolean; isDataReady: () => boolean; setRole: (roleId: string | Promise) => void; getRole: () => string; setAccess: (accessIds: Array | Promise>) => void; getAccess: () => string[]; match: (path: string, accessIds: string[]) => boolean; setPresetAccess: (accessId: string | string[]) => void; }; export function useAccess(accessId: string | number): Ref; interface CustomNavigationGuardOption { router: Router; to: RouteLocationNormalized; from: RouteLocationNormalized; next: NavigationGuardNext; } interface CustomNavigationGuard { (option: CustomNavigationGuardOption): ReturnType; } declare module '@fesjs/fes' { interface PluginBuildConfig { access?: | { rules: Record; } | false; } interface PluginRuntimeConfig { access?: { noFoundHandler?: CustomNavigationGuard; unAccessHandler?: CustomNavigationGuard; ignoreAccess?: string[]; }; } }