import { EventEmitter } from '@angular/core';
import { FunModalMetadata } from './types';
import * as i0 from "@angular/core";
/**
 * `val-fun-modal` — modal moderno tipo promo/onboarding: imagen o ilustración
 * arriba, título, cuerpo y botones de acción, con redondeo personalizable.
 * Sigue la Regla #5 (header canónico vía `val-modal-shell`).
 *
 * El padre controla `[isOpen]` y reacciona a `(dismissed)` / `(action)`.
 *
 * @example
 * ```html
 * <val-fun-modal
 *   [isOpen]="isOpen()"
 *   [props]="{
 *     image: '/promo.png',
 *     title: '¿Cómo se conecta Lucas con los Salmos?',
 *     subtitle: 'Pulsa la referencia cruzada para descubrirlo.',
 *     actions: { position: 'center', columned: false, buttons: [
 *       { text: 'Probar ahora', color: 'primary', shape: 'round', type: 'button', state: 'ENABLED', token: 'try' }
 *     ] }
 *   }"
 *   (action)="onAction($event)"
 *   (dismissed)="isOpen.set(false)"
 * />
 * ```
 */
export declare class FunModalComponent {
    private _isOpen;
    /** Controla la visibilidad del modal. */
    set isOpen(value: boolean);
    get isOpen(): boolean;
    /** Configuración del modal. */
    props: Partial<FunModalMetadata>;
    /** Emite cuando el user cierra el modal (botón Cerrar o backdrop). */
    dismissed: EventEmitter<void>;
    /** Emite con el token del botón de acción presionado. */
    action: EventEmitter<string>;
    config: import("@angular/core").Signal<FunModalMetadata & Required<Pick<FunModalMetadata, "borderRadius" | "imageRadius">>>;
    getBackground(): string | null;
    close(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<FunModalComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<FunModalComponent, "val-fun-modal", never, { "isOpen": { "alias": "isOpen"; "required": false; }; "props": { "alias": "props"; "required": false; }; }, { "dismissed": "dismissed"; "action": "action"; }, never, never, true, never>;
}
