import { ButtonMetadata } from '../../types';
import * as i0 from "@angular/core";
/**
 * `val-login-attempt-modal` — modal de confirmación de intento de inicio de sesión.
 *
 * Se abre cuando el usuario llega a la vista Seguridad vía
 * `?token=...` desde el email/push de "nuevo acceso". Muestra el dispositivo
 * detectado y dos acciones: confirmar que fue uno mismo (cierra sin hacer nada)
 * o bloquear el dispositivo (ejecuta el token de acción).
 *
 * Inputs vía `componentProps` del ModalService. Sin `@Output` (no funcionan con
 * `modalController.create()`) — usa callback `onBlock` y `_modalRef.dismiss`.
 * Recibe los labels ya traducidos (agnóstico a i18n).
 *
 * Header canónico (Regla #5): sin `ion-title`, botón Cerrar texto en `slot=end`,
 * título en el body con `val-display`.
 */
export declare class LoginAttemptModalComponent {
    /** Título del modal (i18n ya resuelto). */
    title: string;
    /** Texto explicativo. */
    body: string;
    /** Descripción del dispositivo (navegador · OS · ubicación). */
    deviceLabel: string;
    /** Metadata secundaria (fecha, IP). Opcional. */
    metaLabel: string;
    /** Mensaje mostrado tras bloquear. */
    doneLabel: string;
    /** Labels de botones. */
    mineLabel: string;
    blockLabel: string;
    closeLabel: string;
    /** `true` si el dispositivo es móvil — cambia el icono. */
    isMobile: boolean;
    /**
     * Callback que ejecuta el bloqueo (executeAction con el token) contra el
     * backend. Lo provee el parent vía `componentProps`. Debe lanzar si falla.
     */
    onBlock?: () => Promise<void>;
    /** Inyectado por `ModalService.open` — referencia para cerrar. */
    _modalRef?: {
        dismiss: (data?: unknown, role?: string) => void;
    };
    /** `true` tras bloquear con éxito — cambia el modal a estado "hecho". */
    protected readonly done: import("@angular/core").WritableSignal<boolean>;
    private working;
    get deviceIcon(): string;
    /** "Sí, fui yo" — cierra sin acción. El dispositivo ya está activo. */
    confirmMine(): void;
    /** "No fui yo" — ejecuta el bloqueo y pasa a estado done. */
    confirmBlock(): Promise<void>;
    close(): void;
    get mineBtn(): Partial<ButtonMetadata>;
    get blockBtn(): Partial<ButtonMetadata>;
    get closeBtn(): Partial<ButtonMetadata>;
    static ɵfac: i0.ɵɵFactoryDeclaration<LoginAttemptModalComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<LoginAttemptModalComponent, "val-login-attempt-modal", never, { "title": { "alias": "title"; "required": false; }; "body": { "alias": "body"; "required": false; }; "deviceLabel": { "alias": "deviceLabel"; "required": false; }; "metaLabel": { "alias": "metaLabel"; "required": false; }; "doneLabel": { "alias": "doneLabel"; "required": false; }; "mineLabel": { "alias": "mineLabel"; "required": false; }; "blockLabel": { "alias": "blockLabel"; "required": false; }; "closeLabel": { "alias": "closeLabel"; "required": false; }; "isMobile": { "alias": "isMobile"; "required": false; }; "onBlock": { "alias": "onBlock"; "required": false; }; "_modalRef": { "alias": "_modalRef"; "required": false; }; }, {}, never, never, true, never>;
}
