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: '
Terms content here...
',
* 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(options: ModalMetadata): Promise>;
/**
* 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;
/**
* 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, cancelButton?: Partial): Promise;
/**
* Opens a sheet modal (iOS-style bottom sheet).
* @param options - Modal configuration with sheet-specific options
* @returns Promise resolving to the modal result
*/
openSheet(options: Omit, 'breakpoints'> & {
initialBreakpoint?: number;
breakpoints?: number[];
showHandle?: boolean;
}): Promise>;
/**
* Opens a fullscreen modal.
* @param options - Modal configuration
* @returns Promise resolving to the modal result
*/
openFullscreen(options: ModalMetadata): Promise>;
/**
* Dismisses the top-most modal.
* @param data - Optional data to return
* @param role - Optional role
*/
dismiss(data?: any, role?: string): Promise;
/**
* Gets the top-most modal.
*/
getTop(): Promise;
private normalizeCanDismiss;
private buildCssClasses;
static ɵfac: i0.ɵɵFactoryDeclaration;
static ɵprov: i0.ɵɵInjectableDeclaration;
}