import { OnChanges, SimpleChanges } from '@angular/core';
import { DomSanitizer } from '@angular/platform-browser';
import { OverlayRef } from '@angular/cdk/overlay';
import { BaseComponent } from '../../../shared/base/base.component';
import { ComponentFactoryService } from '../../../core/services/component-factory.service';
import * as i0 from "@angular/core";
export declare class ModalComponent extends BaseComponent implements OnChanges {
    private componentFactory;
    /**
     * Reference to the CDK Overlay instance. Used to dispose/close the modal.
     */
    overlayRef: OverlayRef;
    /**
     * Configuration object for the modal. Contains header, body, and footer components.
     */
    private bodyContainer;
    constructor(componentFactory: ComponentFactoryService, sanitizer: DomSanitizer);
    /**
     * Respond to changes in @Input properties. Applies host styling and renders dynamic children.
     */
    ngOnChanges(changes: SimpleChanges): void;
    /**
     * Capture all clicks within the modal. Close the modal when an element
     * (or its ancestor) with class 'closeModal' is clicked.
     */
    onHostClick(event: MouseEvent): void;
    /** Load and render components specified in config.body.components */
    private loadBodyComponents;
    /**
     * Close the modal by disposing its overlay.
     */
    close(): void;
    /**
     * Explicit close handler for template elements (e.g., <a> tags). Prevents default behavior and closes.
     */
    onClose(event: MouseEvent): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ModalComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ModalComponent, "app-modal", never, { "overlayRef": { "alias": "overlayRef"; "required": false; }; }, {}, never, never, false, never>;
}
