import { NavigationGuardNext, RouteLocationNormalized } from 'vue-router'; export type TransactionRole = { manager: boolean; monitoringReport: boolean; staff: boolean; approver: boolean; }; export type SystemRole = { create: boolean; view: boolean; update: boolean; delete: boolean; }; export type SystemRoleAttribute = 'importData' | 'assetAttribute' | 'assetPolicies' | 'depreciationGroup' | 'depreciationMethod' | 'documentDeletion' | 'group' | 'user' | 'iotReader' | 'license' | 'purchaseDocument' | 'purchaseInformation' | 'role' | 'tag' | 'tagType' | 'registerAsset'; export type TransactionAttribute = 'borrowingRole' | 'disposalRole' | 'transferRole' | 'auditRole' | 'maintenanceRole' | 'repairRole' | 'trackingRole' | 'damagedRole' | 'missingRole'; export interface UserLogin { transactionRoles: Record; systemRoles: Record; } declare const getTransactionRole: (name: keyof UserLogin['transactionRoles']) => TransactionRole; declare const getSystemRole: (name: keyof UserLogin['systemRoles']) => SystemRole; declare const hasSystemRole: (name: SystemRoleAttribute) => boolean; declare const hasTransactionRole: (name: TransactionAttribute) => boolean; declare const hasManagerRole: (name: TransactionAttribute) => boolean; declare const hasAnyManagerRole: () => boolean; declare const hasAnyMonitoringReportRole: () => boolean; declare const hasStaffRole: (name: TransactionAttribute) => boolean; declare const hasMonitoringReportRole: (name: TransactionAttribute) => boolean; declare const hasApprovalRole: (name: TransactionAttribute) => boolean; declare const checkRouteAccess: (to: RouteLocationNormalized, from: RouteLocationNormalized, next: NavigationGuardNext) => void; export { getTransactionRole, getSystemRole, hasTransactionRole, hasApprovalRole, hasSystemRole, checkRouteAccess, hasManagerRole, hasAnyManagerRole, hasMonitoringReportRole, hasAnyMonitoringReportRole, hasStaffRole, };