import { IProvider } from '../core'; import { StringFormatType } from '../utils'; import { ISecurityClaim } from './ISecurityClaim'; export interface AuthorizePermissionOptions { users?: string[]; roles?: string[]; resources?: string[]; errorMessage?: StringFormatType; } export interface ISecurityProvider extends IProvider { hasAllPermissions(options: AuthorizePermissionOptions): Promise; hasAnyPermissions(options: AuthorizePermissionOptions): Promise; exceptPermissions(options: AuthorizePermissionOptions): Promise; hasAllClaims(...claims: ISecurityClaim[]): Promise; hasAnyClaims(...claims: ISecurityClaim[]): Promise; exceptClaims(...claims: ISecurityClaim[]): Promise; }