import { ModalController } from '@ionic/angular/standalone';
import { ModalMetadata, SimpleModalMetadata, ModalResult, ModalButton } from './types';
import * as i0 from "@angular/core";
/**
 * ModalService
 *
 * A service for creating and managing modals with various configurations.
 *
 * @example Basic component modal
 * ```typescript
 * const result = await modalService.open({
 *   component: MyFormComponent,
 *   componentProps: { userId: 123 },
 *   header: { title: 'Edit User', showCloseButton: true },
 *   size: 'medium'
 * });
 *
 * if (result.role === 'confirm') {
 *   console.log('Saved:', result.data);
 * }
 * ```
 *
 * @example Simple content modal
 * ```typescript
 * await modalService.openSimple({
 *   title: 'Terms of Service',
 *   content: '<p>Terms content here...</p>',
 *   size: 'large',
 *   showCloseButton: true
 * });
 * ```
 *
 * @example Sheet modal (mobile)
 * ```typescript
 * const result = await modalService.openSheet({
 *   component: FilterComponent,
 *   breakpoints: {
 *     initialBreakpoint: 0.5,
 *     breakpoints: [0, 0.5, 1],
 *     showHandle: true
 *   }
 * });
 * ```
 */
export declare class ModalService {
    private modalController;
    constructor(modalController: ModalController);
    /**
     * Opens a modal with a component.
     * @param options - Modal configuration
     * @returns Promise resolving to the modal result
     */
    open<T = any, R = any>(options: ModalMetadata<T>): Promise<ModalResult<R>>;
    /**
     * Opens a simple content modal without a custom component.
     * Uses Ionic's alert-like styling but with modal capabilities.
     * @param options - Simple modal configuration
     * @returns Promise resolving to the modal result
     */
    openSimple(options: SimpleModalMetadata): Promise<ModalResult>;
    /**
     * Opens a confirmation modal.
     * @param title - Modal title
     * @param message - Modal message
     * @param confirmButton - Confirm button config (optional)
     * @param cancelButton - Cancel button config (optional)
     * @returns Promise resolving to true if confirmed
     */
    confirm(title: string, message: string, confirmButton?: Partial<ModalButton>, cancelButton?: Partial<ModalButton>): Promise<boolean>;
    /**
     * Opens a sheet modal (iOS-style bottom sheet).
     * @param options - Modal configuration with sheet-specific options
     * @returns Promise resolving to the modal result
     */
    openSheet<T = any, R = any>(options: Omit<ModalMetadata<T>, 'breakpoints'> & {
        initialBreakpoint?: number;
        breakpoints?: number[];
        showHandle?: boolean;
    }): Promise<ModalResult<R>>;
    /**
     * Opens a fullscreen modal.
     * @param options - Modal configuration
     * @returns Promise resolving to the modal result
     */
    openFullscreen<T = any, R = any>(options: ModalMetadata<T>): Promise<ModalResult<R>>;
    /**
     * Dismisses the top-most modal.
     * @param data - Optional data to return
     * @param role - Optional role
     */
    dismiss(data?: any, role?: string): Promise<boolean>;
    /**
     * Gets the top-most modal.
     */
    getTop(): Promise<HTMLIonModalElement | undefined>;
    private normalizeCanDismiss;
    private buildCssClasses;
    static ɵfac: i0.ɵɵFactoryDeclaration<ModalService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<ModalService>;
}
