import Addon from "../addon"; import { AddonOptions, Operation, ResourceAttributes } from "../types"; import User from "../resources/user"; import Application from "../application"; import JsonApiUserProcessor from "../processors/user-processor"; import ApplicationInstance from "../application-instance"; export declare type UserManagementAddonOptions = AddonOptions & { userResource: typeof User; userProcessor?: typeof JsonApiUserProcessor; userEncryptPasswordCallback?: (op: Operation) => Promise; userLoginCallback?: (op: Operation, userDataSource: ResourceAttributes) => Promise; userGenerateIdCallback?: () => Promise; userRolesProvider?: (this: ApplicationInstance, user: User) => Promise; userPermissionsProvider?: (this: ApplicationInstance, user: User) => Promise; usernameRequestParameter?: string; passwordRequestParameter?: string; }; export default class UserManagementAddon extends Addon { readonly app: Application; readonly options?: UserManagementAddonOptions; constructor(app: Application, options?: UserManagementAddonOptions); install(): Promise; private createUserProcessor; private createSessionProcessor; private createSessionResource; }