import { d as RbacCanInput, u as RbacServiceDecision, y as RbacServiceDecisionReason } from './resolvers-BKIECWsa.js'; import { a as RbacService, I as InMemoryRbacStorage, R as RbacModuleOptions } from './rbac.service-CGsphCvC.js'; import { C as CreateRoleInput, a as AssignRoleInput, p as RbacStorage } from './storage-bvOBdwf6.js'; import { a as RbacSubject } from './subject-DTDyIu82.js'; import { DynamicModule } from '@nestjs/common'; import './audit-BHpXBgZn.js'; declare function expectAllowed(rbac: RbacService, input: RbacCanInput): Promise; declare function expectDenied(rbac: RbacService, input: RbacCanInput, reason?: RbacServiceDecision['reason']): Promise; declare function expectDeniedReason(rbac: RbacService, input: RbacCanInput, reason: RbacServiceDecision['reason']): Promise; interface RbacScenarioInput { roles?: CreateRoleInput[] | undefined; bindings?: AssignRoleInput[] | undefined; options?: Omit | undefined; } interface RbacScenario { storage: InMemoryRbacStorage; rbac: RbacService; } type RbacMatrixCase = RbacCanInput & { allowed: boolean; reason?: RbacServiceDecisionReason | undefined; label?: string | undefined; }; declare function createRbacScenario(input?: RbacScenarioInput): Promise; declare function expectRbacMatrix(rbac: RbacService, cases: RbacMatrixCase[]): Promise; declare const rbacUser: (id: string, tenantId?: string | null) => RbacSubject; declare const rbacApiKey: (id: string, tenantId?: string | null) => RbacSubject; declare const rbacServiceAccount: (id: string, tenantId?: string | null) => RbacSubject; declare const user: (id: string, tenantId?: string | null) => RbacSubject; declare const apiKey: (id: string, tenantId?: string | null) => RbacSubject; declare const serviceAccount: (id: string, tenantId?: string | null) => RbacSubject; interface TestRbacModuleOptions extends Omit { storage?: RbacStorage | undefined; subject?: RbacSubject | undefined; subjectResolver?: RbacModuleOptions['subjectResolver'] | undefined; } declare class TestRbacModule { static forRoot(options?: TestRbacModuleOptions): DynamicModule; } export { type RbacMatrixCase, type RbacScenario, type RbacScenarioInput, TestRbacModule, type TestRbacModuleOptions, apiKey, createRbacScenario, expectAllowed, expectDenied, expectDeniedReason, expectRbacMatrix, rbacApiKey, rbacServiceAccount, rbacUser, serviceAccount, user };