import type { DynamicModule, InjectionToken, ModuleMetadata, OptionalFactoryDependency, Provider, Type } from '@nestjs/common'; import type { PermissionBasedAccessControlServiceOptions } from './permission-based-access-control.service.js'; import type { PermissionsGuardOptions } from './permissions.guard.js'; export declare const PERMISSION_BASED_ACCESS_CONTROL_OPTIONS: unique symbol; export type PermissionBasedAccessControlOptions = PermissionBasedAccessControlServiceOptions & { defaults?: PermissionsGuardOptions; decorators?: boolean; }; export interface PermissionBasedAccessControlOptionsFactory { createPermissionBasedAccessControlOptions(): Promise | PermissionBasedAccessControlOptions; } export interface PermissionBasedAccessControlAsyncOptions extends Pick { inject?: (InjectionToken | OptionalFactoryDependency)[]; useClass?: Type; useExisting?: Type; useFactory?: (...arguments_: never[]) => Promise | PermissionBasedAccessControlOptions; extraProviders?: Provider[]; } /** * Configuration module for @oidc-adapters passport strategy. */ export declare class PermissionBasedAccessControlModule { private static createProviders; private static createAsyncProviders; private static createOptionsProvider; private static createAsyncOptionsProvider; private static createServiceOptionsProvider; private static createPermissionsGuardOptionsProvider; private static createAppGuardProvider; static forRoot(options: PermissionBasedAccessControlOptions): DynamicModule; static forRootAsync(options: PermissionBasedAccessControlAsyncOptions): DynamicModule; }