import { IIdentity } from './IIdentity'; import { ISecurityClaim } from './ISecurityClaim'; import { AuthorizePermissionOptions } from './ISecurityProvider'; export interface IPrincipal extends IIdentity { hasAllRoles(...roles: string[]): Promise; hasAnyRoles(...roles: string[]): Promise; exceptRoles(...roles: string[]): Promise; hasAllResources(...resources: string[]): Promise; hasAnyResources(...resources: string[]): Promise; exceptResources(...resources: string[]): Promise; hasAllPermissions(options: AuthorizePermissionOptions): Promise; hasAnyPermissions(options: AuthorizePermissionOptions): Promise; exceptPermissions(options: AuthorizePermissionOptions): Promise; hasAllClaims(...claims: ISecurityClaim[]): Promise; hasAnyClaims(...claims: ISecurityClaim[]): Promise; exceptClaims(...claims: ISecurityClaim[]): Promise; }