import { AccountResponseData, UserSessionCertificatedFromMethodType, UserSessionRecords, UserSessionTamperedFromMethodType, CasbinModel } from '../types'; import { HTTPMiddlewareContext } from '../plugins/plugin-http/types'; import { Account } from '../models/mongo/generated/client'; import { PromiseFulfilledResult, UserSession, WebsocketUserSessionClientCommandInfo } from '@sling/artus-web-shared/types'; import { WebsocketMiddlewareContext } from '../plugins/plugin-websocket/types'; export declare class AccountService { private readonly app; private readonly cacheService; private readonly casbinService; getConfig(): Promise; private getPrisma; getCasbinModels(): Promise; getCasbinModelsStr(): Promise; getCasbinEnforcer(): Promise; formatResponseData(data: Partial, account?: PromiseFulfilledResult> | UserSession, options?: Partial<{ useCtxAccount: boolean; }>): AccountResponseData; setClientSession(ctx: HTTPMiddlewareContext | WebsocketMiddlewareContext, session: UserSession | null, options?: Partial<{ keepSignedIn: boolean; }>): Promise; broadcastStaleClientSessions(sessionRecords: UserSessionRecords, sessionClientCommandInfo: WebsocketUserSessionClientCommandInfo): Promise; staleClientSession(sessionKeyValue: string, sessionClientCommandInfo: WebsocketUserSessionClientCommandInfo): Promise; initSession(signedInAccount?: Account, options?: Partial<{ _sessionId: string; _csrfToken: string; }>): Promise; handleSessionCertificated(ctx: HTTPMiddlewareContext, signedInAccount: Account, options?: Partial<{ keepSignedIn: boolean; enableMultipleSignedInSessions: boolean; enableRecordMultipleSignedInSessions: boolean; methodType: UserSessionCertificatedFromMethodType; }>): Promise; handleCertificatedSessionTampered(ctx: HTTPMiddlewareContext, options?: Partial<{ enableMultipleSignedInSessions: boolean; enableRecordMultipleSignedInSessions: boolean; fallbackSessionRecordsPersistentDBCondition: Parameters; methodType: UserSessionTamperedFromMethodType; }>): Promise; getWsSocketSessionKey(socket: WebsocketMiddlewareContext['input']['params']['socket']): string; getCtxSession(ctx: HTTPMiddlewareContext): Promise; setWsSocketSessionKey(socket: WebsocketMiddlewareContext['input']['params']['socket'], session: UserSession | null): void; setCtxSession(ctx: HTTPMiddlewareContext, session: UserSession | null): Promise>; staleCtxSession(ctx: HTTPMiddlewareContext): Promise>; calcDistributeCacheSessionKey(sessionKeyValue: string): string; calcDistributeCacheSessionRecordsKey(userId: Exclude>, null>['userId']): string; getDistributeSession(sessionKeyValue: string): Promise; getDistributeSessionRecords(userId: Exclude>, null>['userId']): Promise; setDistributeSession(sessionKeyValue: string, session: UserSession): Promise; setDistributeSessionRecords(userId: Exclude>, null>['userId'], sessionRecords: UserSessionRecords): Promise; staleDistributeSession(sessionKeyValue: string): Promise; staleDistributeSessionRecords(userId: Exclude>, null>['userId']): Promise; findInPersistentDB(condition: Pick): Promise; updateOnPersistentDB(condition: Pick, data: Partial>): Promise; createUponPersistentDB(data: Account): Promise; handleDistributeSessionKeyExpired(sessionKeyValue: string): Promise; signIn(certification: Pick, options?: Partial<{ passwordPreEncrypt: boolean; enableMultipleSignedInSessions: boolean; }>): Promise>; signUp(registration: Pick, options?: Partial<{ passwordPreEncrypt: boolean; enableMultipleSignedInSessions: boolean; }>): Promise>; signOut(...args: Parameters): Promise; changePwd(certification: Pick & { oldPassword: string; }, options?: Partial<{ passwordPreEncrypt: boolean; }>): Promise>; }