import { MantineColor } from '@mantine/core';
export interface ArchbaseConfirmOptions {
    /** Título do modal */
    title?: React.ReactNode;
    /** Mensagem do modal */
    message?: React.ReactNode;
    /** Texto do botão confirmar */
    confirmLabel?: string;
    /** Texto do botão cancelar */
    cancelLabel?: string;
    /** Cor do botão confirmar */
    confirmColor?: MantineColor;
    /** Cor do botão cancelar */
    cancelColor?: MantineColor;
    /** Callback ao confirmar */
    onConfirm?: () => void;
    /** Callback ao cancelar */
    onCancel?: () => void;
    /** Se o modal pode ser fechado clicando fora */
    closeOnClickOutside?: boolean;
    /** Se o modal pode ser fechado com ESC */
    closeOnEscape?: boolean;
    /** Centrar o modal */
    centered?: boolean;
    /** Tamanho do modal */
    size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
    /** Ícone do modal */
    icon?: React.ReactNode;
    /** Agrupar botões */
    groupProps?: Record<string, any>;
}
export interface ArchbaseDeleteConfirmOptions extends Omit<ArchbaseConfirmOptions, 'confirmColor'> {
    /** Nome do item a ser deletado */
    itemName?: string;
}
export interface UseArchbaseConfirmReturn {
    /** Abre um modal de confirmação e retorna Promise<boolean> */
    confirm: (options: ArchbaseConfirmOptions) => Promise<boolean>;
    /** Abre um modal de confirmação de exclusão */
    confirmDelete: (options?: ArchbaseDeleteConfirmOptions) => Promise<boolean>;
    /** Abre um modal de alerta (apenas OK) */
    alert: (options: Omit<ArchbaseConfirmOptions, 'cancelLabel' | 'onCancel'>) => Promise<void>;
    /** Fecha todos os modais */
    closeAll: () => void;
}
export declare function useArchbaseConfirm(): UseArchbaseConfirmReturn;
/**
 * Abre um modal de confirmação (uso imperativo sem hook)
 */
export declare function archbaseConfirm(options: ArchbaseConfirmOptions): Promise<boolean>;
/**
 * Abre um modal de confirmação de exclusão (uso imperativo)
 */
export declare function archbaseConfirmDelete(options?: ArchbaseDeleteConfirmOptions): Promise<boolean>;
/**
 * Abre um modal de alerta (uso imperativo)
 */
export declare function archbaseAlert(options: Omit<ArchbaseConfirmOptions, 'cancelLabel' | 'onCancel'>): Promise<void>;
export default useArchbaseConfirm;
