import { GDplugin } from '../GDplugin.js'; import { InferTypeRead, InferTypeWrite } from '../../lib/good-cop/index-backend.js'; import { ModelTypes } from '../../cache/dbs/index.generated.js'; import { RegisterErrorType } from '../../error.js'; import { createToken, parseToken, setConnexionTokens } from './userAuthenticationTokenService.js'; import { userLogin } from './userLogin.js'; import { comparePasswordAddAttemptAndLockIfNecessary } from './userPasswordService.js'; import { PluginUserConfig } from './config.js'; export type Name = 'GDmanagedLogin'; /** Managed Login will handle login end to end with SDK integration, password management, cookie and secure connexion via JWT with latest OWASP standards. */ export declare class GDmanagedLogin extends GDplugin { name: "GDmanagedLogin"; config: PluginUserConfig; constructor(config: PluginUserConfig); userLoginReturnValidator: import("../../lib/good-cop/definitionTypes.js").GoodCopNextDefinition, Required<{} & { user?: any; accessToken?: string; deviceId?: string; csrfToken?: string; biometricAuthToken?: string; }>, false>, "mergeWith">; userLogin: typeof userLogin; comparePasswordAddAttemptAndLockIfNecessary: typeof comparePasswordAddAttemptAndLockIfNecessary; setConnexionTokens: typeof setConnexionTokens; sendValidationEmail(ctx: Ctx, userOrId: ModelTypes['user'] | string, additionalParams?: Record): Promise; createToken: typeof createToken; parseToken: typeof parseToken; errors: { emailNotSet: { code: number; }; newEmailSameAsOld: { code: number; }; newPasswordSameAsOld: { code: number; }; wrongNewEmail: { code: number; }; }; addUserAdditionalFields(): { email: import("../../lib/good-cop/definitionTypes.js").GoodCopNextDefinition, import("../../lib/good-cop/definitionTypes.js").GoodCopStringMethods>; /** this is when a request for updating the email is made */ newEmail: import("../../lib/good-cop/definitionTypes.js").GoodCopNextDefinition, import("../../lib/good-cop/definitionTypes.js").GoodCopStringMethods>; phonePrefix: import("../../lib/good-cop/definitionTypes.js").GoodCopNextDefinition, import("../../lib/good-cop/definitionTypes.js").TypedExclude>; phoneWithPrefix: import("../../lib/good-cop/definitionTypes.js").GoodCopNextDefinition, import("../../lib/good-cop/definitionTypes.js").GoodCopStringMethods>; newPhonePrefix: import("../../lib/good-cop/definitionTypes.js").GoodCopNextDefinition, import("../../lib/good-cop/definitionTypes.js").TypedExclude>; newPhoneWithPrefix: import("../../lib/good-cop/definitionTypes.js").GoodCopNextDefinition, import("../../lib/good-cop/definitionTypes.js").GoodCopStringMethods>; /** default encrypted */ password: import("../../lib/good-cop/definitionTypes.js").GoodCopNextDefinition, import("../../lib/good-cop/definitionTypes.js").GoodCopStringMethods>; /** Used to validate phone or email */ validationTokens: import("../../lib/good-cop/definitionTypes.js").GoodCopNextDefinition, "length" | "minLength" | "maxLength">; /** Those are used to request an access token. Access token changes every N minutes, while refresh tokens last for a session */ refreshTokens: import("../../lib/good-cop/definitionTypes.js").GoodCopNextDefinition, import("../../lib/good-cop/definitionTypes.js").GoodCopStringMethods>[]; accessTokens: import("../../lib/good-cop/definitionTypes.js").GoodCopNextDefinition, import("../../lib/good-cop/definitionTypes.js").GoodCopStringMethods>[]; lastPasswordCompareTime: import("../../lib/good-cop/definitionTypes.js").GoodCopNextDefinition, never>; passwordRetrialNb: import("../../lib/good-cop/definitionTypes.js").GoodCopNextDefinition, "gt" | "lt" | "lte" | "gte" | "round2" | "between" | "greaterThan" | "lessThan" | "max" | "min" | "positive">; }; } declare module '../../security/userAndConnexion/userAdditionalFields.js' { interface UserAdditionalFieldsRead extends InferTypeRead> { } interface UserAdditionalFieldsWrite extends InferTypeWrite> { } } declare global { interface GreenDotErrors extends RegisterErrorType { } }