import { IController } from '../../../common'; import { Constructor, MetadataMap } from '@loopback/core'; import { IPermissionDecorator } from '../decorators'; import { Permission } from '../models'; import { PermissionRepository } from '../repositories'; export interface IPermission { code: string; subject: string; action: string; scope: string; name: string; parentId: number; pType: string; details?: IPermissionDecorator; } export declare class GeneratePermissionService { getMethodsClass(controllerPrototype: object): string[]; getAllMethodsClass(controllerPrototype: object): string[]; generateParentPermissions(opts: { controller: Constructor; permissionRepository: PermissionRepository; }): Promise; generatePermissions(opts: { methods: string[]; permissionSubject: string; parentId: number; allPermissionDecoratorData: MetadataMap; }): IPermission[]; generatePermissionBaseInherit(opts: { methodsParentsClass: string[]; methodsChildClass: string[]; parentPermission: Permission; allPermissionDecoratorData: MetadataMap; }): IPermission[]; generatePermissionRecords(opts: { controller: Constructor; parentPermission: Permission; permissionRepository: PermissionRepository; allPermissionDecoratorData: MetadataMap; }): IPermission[]; updatePermissionByChangeMethodName(permissionSubject: string, allPermissionDecoratorData: MetadataMap, permissionRepository: PermissionRepository): Promise; startMigration(opts: { permissionRepository: PermissionRepository; controllers: Array>; }): Promise; /** * Obtain all permission codes for a controller * * @returns {string[]} List of permission codes */ getPermissionCodes(opts: { controllers: Array>; }): string[]; /** * Write all permission codes for a list of controllers to a file * * @param outputPath - Path to write * * @example * const generatePermissionService = new GeneratePermissionService(); * * generatePermissionService.getPermissionCodesAndWriteToFile({ * controllers: [XboxController, PSController, NintendoController], * outputPath: './src/migrations/', * fileName: 'permissionCodes', * fileType: 'ts', * }); */ getPermissionCodesAndWriteToFile(opts: { controllers: Array>; outputPath?: string; fileName?: string; fileType?: 'ts' | 'txt'; }): void; } //# sourceMappingURL=generator.service.d.ts.map