/** * Permission helpers for IntelligenceBank assets * Handles permission checking and action availability */ /** * Standard IntelligenceBank permissions */ export type Permission = 'resource_download' | 'resource_link' | 'resource_copy' | 'resource_edit' | 'view' | 'download' | 'list'; /** * Check if a specific permission is allowed * @param allowedActions - Array of allowed action strings from API * @param permission - Permission to check * @returns True if permission is allowed */ export declare function hasPermission(allowedActions: string[], permission: Permission): boolean; /** * Check if multiple permissions are allowed * @param allowedActions - Array of allowed action strings from API * @param permissions - Array of permissions to check * @returns True if ALL permissions are allowed */ export declare function hasAllPermissions(allowedActions: string[], permissions: Permission[]): boolean; /** * Check if any of the specified permissions are allowed * @param allowedActions - Array of allowed action strings from API * @param permissions - Array of permissions to check * @returns True if ANY permission is allowed */ export declare function hasAnyPermission(allowedActions: string[], permissions: Permission[]): boolean; /** * Get all available actions from allowed actions array * @param allowedActions - Array of allowed action strings from API * @returns Array of available Permission types */ export declare function getAvailableActions(allowedActions: string[]): Permission[]; /** * Check if asset is publicly accessible * An asset is considered public if it has 'view' permission and is marked as public * @param isPublic - Public flag from asset * @param allowedActions - Array of allowed action strings from API * @returns True if asset is publicly accessible */ export declare function isPublicAsset(isPublic: boolean, allowedActions: string[]): boolean; /** * Check if asset is restricted (not public or has limited permissions) * @param isPublic - Public flag from asset * @param allowedActions - Array of allowed action strings from API * @returns True if asset is restricted */ export declare function isRestrictedAsset(isPublic: boolean, allowedActions: string[]): boolean; /** * Check if download is available for the asset * @param allowedActions - Array of allowed action strings from API * @param isWebApp - True if running in web app mode * @returns True if download is available */ export declare function canDownload(allowedActions: string[], isWebApp?: boolean): boolean; /** * Check if public link generation is available * @param isPublic - Public flag from asset * @param allowedActions - Array of allowed action strings from API * @param isWebApp - True if running in web app mode * @returns True if public link can be generated */ export declare function canGeneratePublicLink(isPublic: boolean, allowedActions: string[], isWebApp?: boolean): boolean; /** * Check if copy to clipboard is available * @param allowedActions - Array of allowed action strings from API * @returns True if copy is available */ export declare function canCopy(allowedActions: string[]): boolean; /** * Check if asset can be edited * @param allowedActions - Array of allowed action strings from API * @returns True if edit is available */ export declare function canEdit(allowedActions: string[]): boolean; /** * Get permission summary for debugging * @param allowedActions - Array of allowed action strings from API * @param isPublic - Public flag from asset * @returns Object with permission flags */ export declare function getPermissionSummary(allowedActions: string[], isPublic?: boolean): { canDownload: boolean; canGeneratePublicLink: boolean; canCopy: boolean; canEdit: boolean; isPublic: boolean; isRestricted: boolean; availableActions: Permission[]; }; //# sourceMappingURL=permissions.d.ts.map