import { EventEmitter } from '@angular/core'; import { FormMetadata, FormSubmit } from '../../types'; import * as i0 from "@angular/core"; /** Modo del modal, resuelto al abrir según si el user ya tiene contraseña. */ type PasswordModalMode = 'loading' | 'change' | 'set'; /** * `val-change-password-modal` — modal de gestión de contraseña para un usuario * autenticado. Análogo al modal de "recuperar contraseña" del `val-login`. * * Es dual-mode: al abrirse consulta `AuthService.checkHasPassword()` y se adapta: * - **change** — el user ya tiene contraseña → pide actual + nueva → * `changePassword()`. * - **set** — el user es OAuth-only (sin contraseña) → pide solo la nueva, * pide confirmación explícita (no pierde el acceso social, es aditivo) → * `setPasswordForOAuthUser()`. * * Self-contained: inyecta `AuthService` y llama el endpoint directo — la app * solo controla `[isOpen]` y reacciona a `(changed)` / `(dismissed)`. * * i18n: usa el namespace compartido `_auth` (mismas claves que `val-login`). * * @example * ```html * * ``` */ export declare class ChangePasswordModalComponent { private _isOpen; /** * Controla la visibilidad del modal. Lo decide el componente padre. Cada vez * que pasa de cerrado a abierto se resuelve el modo (change vs set). */ set isOpen(value: boolean); get isOpen(): boolean; /** Emite al cambiar/crear la contraseña con éxito. El padre cierra el modal. */ changed: EventEmitter; /** Emite cuando el user cierra el modal (botón X o backdrop). */ dismissed: EventEmitter; private auth; private toast; private i18n; private i18nHelper; private confirmDialog; private readonly _mode; /** Modo actual — `loading` mientras se consulta `checkHasPassword()`. */ readonly mode: import("@angular/core").Signal; private readonly _formState; /** Traduce una clave del namespace `_auth`. */ t(key: string): string; readonly formProps: import("@angular/core").Signal; /** Campo "nueva contraseña" — compartido por ambos modos. */ private newPasswordField; /** Cierre iniciado por el user (X / backdrop). */ close(): void; /** Consulta si el user ya tiene contraseña para elegir el modo del modal. */ private resolveMode; submitHandler(event: FormSubmit): Promise; /** Flujo normal: el user tiene contraseña y la cambia. */ private handleChangePassword; /** * Flujo OAuth-only: el user no tiene contraseña. Antes de crearla pide * confirmación explícita — es un cambio de cuenta, aunque aditivo (conserva * el acceso social). */ private handleSetPassword; /** Mapea los códigos de error del backend a mensajes del namespace `_auth`. */ private resolveError; private showToast; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } export {};