import { ConfirmationDialogMetadata, ConfirmationResult, ConfirmationButton } from './types';
import * as i0 from "@angular/core";
/**
 * Service for displaying confirmation dialogs.
 *
 * @example Basic usage
 * const result = await confirmationService.confirm({
 *   title: 'Delete Item',
 *   message: 'Are you sure you want to delete this item?',
 * });
 *
 * if (result.confirmed) {
 *   // User confirmed
 * }
 *
 * @example Custom buttons
 * const result = await confirmationService.confirm({
 *   title: 'Save Changes',
 *   message: 'Do you want to save your changes before leaving?',
 *   confirmButton: { text: 'Save', color: 'success' },
 *   cancelButton: { text: 'Discard', color: 'danger' },
 *   extraButtons: [{ text: 'Cancel', role: 'cancel' }]
 * });
 *
 * @example Destructive action
 * const result = await confirmationService.confirmDestructive({
 *   title: 'Delete Account',
 *   message: 'This action cannot be undone. Are you sure?',
 * });
 */
export declare class ConfirmationDialogService {
    private alertController;
    /**
     * Shows a confirmation dialog and returns the result.
     * @param options - Configuration for the dialog
     * @returns Promise resolving to the confirmation result
     */
    confirm(options: ConfirmationDialogMetadata): Promise<ConfirmationResult>;
    /**
     * Shows a simple confirmation dialog with default buttons.
     * @param title - Dialog title
     * @param message - Dialog message
     * @returns Promise resolving to true if confirmed, false otherwise
     */
    confirmSimple(title: string, message: string): Promise<boolean>;
    /**
     * Shows a destructive action confirmation with red confirm button.
     * @param options - Configuration for the dialog
     * @returns Promise resolving to the confirmation result
     */
    confirmDestructive(options: Omit<ConfirmationDialogMetadata, 'confirmButton'> & {
        confirmButton?: Partial<ConfirmationButton>;
    }): Promise<ConfirmationResult>;
    /**
     * Shows an info alert with just an OK button.
     * @param title - Alert title
     * @param message - Alert message
     */
    alert(title: string, message: string): Promise<void>;
    /**
     * Shows a three-option dialog (Save, Discard, Cancel).
     * Common for unsaved changes scenarios.
     * @param title - Dialog title
     * @param message - Dialog message
     * @returns Promise resolving to 'save' | 'discard' | 'cancel'
     */
    confirmSaveDiscard(title: string, message: string): Promise<'save' | 'discard' | 'cancel'>;
    private buildButtons;
    static ɵfac: i0.ɵɵFactoryDeclaration<ConfirmationDialogService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<ConfirmationDialogService>;
}
