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
 * <val-change-email-modal
 *   [isOpen]="isEmailModalOpen()"
 *   (changed)="isEmailModalOpen.set(false)"
 *   (dismissed)="isEmailModalOpen.set(false)"
 * />
 * ```
 */
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<void>;
    /** Emite cuando el user cierra el modal. */
    dismissed: EventEmitter<void>;
    private auth;
    private toast;
    private i18n;
    private i18nHelper;
    readonly _step: import("@angular/core").WritableSignal<EmailModalStep>;
    readonly _pendingEmail: import("@angular/core").WritableSignal<string>;
    private readonly _formState;
    t(key: string): string;
    readonly noPasswordTitle: import("@angular/core").Signal<string>;
    readonly noPasswordHint: import("@angular/core").Signal<string>;
    readonly step1Props: import("@angular/core").Signal<FormMetadata>;
    readonly step2Props: import("@angular/core").Signal<FormMetadata>;
    readonly step3Props: import("@angular/core").Signal<FormMetadata>;
    close(): void;
    private resolveMode;
    handleStep1(event: FormSubmit): void;
    handleStep2(event: FormSubmit): void;
    handleStep3(event: FormSubmit): void;
    private resolveError;
    private showToast;
    static ɵfac: i0.ɵɵFactoryDeclaration<ChangeEmailModalComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ChangeEmailModalComponent, "val-change-email-modal", never, { "isOpen": { "alias": "isOpen"; "required": false; }; }, { "changed": "changed"; "dismissed": "dismissed"; }, never, never, true, never>;
}
export {};
