import type { DynamicModule, InjectionToken, ModuleMetadata, OptionalFactoryDependency, Provider, Type } from '@nestjs/common'; import type { RoleBasedAccessControlServiceOptions } from './role-based-access-control.service.js'; import type { RolesGuardOptions } from './roles.guard.js'; export declare const ROLE_BASED_ACCESS_CONTROL_OPTIONS: unique symbol; export type RoleBasedAccessControlOptions = RoleBasedAccessControlServiceOptions & { defaults?: RolesGuardOptions; decorators?: boolean; }; export interface RoleBasedAccessControlOptionsFactory { createRoleBasedAccessControlOptions(): Promise | RoleBasedAccessControlOptions; } export interface RoleBasedAccessControlAsyncOptions extends Pick { inject?: (InjectionToken | OptionalFactoryDependency)[]; useClass?: Type; useExisting?: Type; useFactory?: (...arguments_: never[]) => Promise | RoleBasedAccessControlOptions; extraProviders?: Provider[]; } /** * Configuration module for @oidc-adapters passport strategy. */ export declare class RoleBasedAccessControlModule { private static createProviders; private static createAsyncProviders; private static createOptionsProvider; private static createAsyncOptionsProvider; private static createRolesGuardOptionsProvider; private static createServiceOptionsProvider; private static createAppGuardProvider; static forRoot(options: RoleBasedAccessControlOptions): DynamicModule; static forRootAsync(options: RoleBasedAccessControlAsyncOptions): DynamicModule; }