import { EventEmitter } from '@angular/core';
import { FormMetadata, FormSubmit } from '../../types';
import * as i0 from "@angular/core";
type EmailModalStep = 'loading' | 'no-password' | 'step1' | 'step2' | 'step3';
/**
* `val-change-email-modal` — modal de cambio de email en 3 pasos.
*
* Paso 1: contraseña actual + nuevo email → `initiateEmailChange()`
* Paso 2: código enviado al email actual → `confirmEmailChangeStep1()`
* Paso 3: código enviado al nuevo email → `confirmEmailChangeStep2()`
*
* Si el user no tiene contraseña (cuenta OAuth-only), muestra aviso.
*
* @example
* ```html
*
* ```
*/
export declare class ChangeEmailModalComponent {
private _isOpen;
set isOpen(value: boolean);
get isOpen(): boolean;
/** Emite al completar el cambio de email con éxito. El padre cierra el modal. */
changed: EventEmitter;
/** Emite cuando el user cierra el modal. */
dismissed: EventEmitter;
private auth;
private toast;
private i18n;
private i18nHelper;
readonly _step: import("@angular/core").WritableSignal;
readonly _pendingEmail: import("@angular/core").WritableSignal;
private readonly _formState;
t(key: string): string;
readonly noPasswordTitle: import("@angular/core").Signal;
readonly noPasswordHint: import("@angular/core").Signal;
readonly step1Props: import("@angular/core").Signal;
readonly step2Props: import("@angular/core").Signal;
readonly step3Props: import("@angular/core").Signal;
close(): void;
private resolveMode;
handleStep1(event: FormSubmit): void;
handleStep2(event: FormSubmit): void;
handleStep3(event: FormSubmit): void;
private resolveError;
private showToast;
static ɵfac: i0.ɵɵFactoryDeclaration;
static ɵcmp: i0.ɵɵComponentDeclaration;
}
export {};