import { TEncodedObject } from 'tscommons-esm-core'; import { ICommonsFirstClass } from 'tscommons-esm-models'; import { TCommonsDatabaseParams, TCommonsDatabaseTypes, TCommonsDatabaseDbValues } from 'nodecommons-esm-database'; import { ICommonsStrictParamsRequest, TCommonsHttpResponse } from 'nodecommons-esm-http'; import { CommonsFirstClass } from 'nodecommons-esm-models'; import { CommonsRestUserPwHashSessionApi, CommonsRestServer } from 'nodecommons-esm-rest'; import { ICommonsAdamantineManagedSecondClassUserWithPwHash, CommonsAdamantineManagedSecondClassUserSessionService, CommonsAdamantineManagedSecondClassUser } from 'nodecommons-esm-security-adamantine'; export declare abstract class CommonsRestAdamantineManagedSecondClassUserModelSessionApi, UserClassT extends CommonsAdamantineManagedSecondClassUser, FirstClassI extends ICommonsFirstClass, FirstClassClassT extends CommonsFirstClass, SessionServiceT extends CommonsAdamantineManagedSecondClassUserSessionService> extends CommonsRestUserPwHashSessionApi { private model; constructor(restServer: CommonsRestServer, model: UserClassT, sessionService: SessionServiceT); private getFirstClass; private autoRegister; installUserModelAuthentication(authenticateQuery: string, encodeUser: (user: UserI) => TEncodedObject, buildAutoRegisterUser?: (username: string, firstClass: FirstClassI, data: Partial & { id?: never; ordered?: never; parent?: never; }) => Partial & { id?: never; ordered?: never; parent?: never; } | undefined, logNoSuchUser?: (username: string) => Promise, logInvalidPassword?: (user: UserI) => Promise): void; }