import { ReactNode } from 'react';
export interface ProgressModalProps {
    /** Controla se o modal está aberto */
    isOpen: boolean;
    /** Callback ao fechar */
    onClose: () => void;
    /**
     * Mensagem principal exibida abaixo da imagem. Também é usada como
     * accessible name do dialog (renderizada visualmente escondida no `<h2>`
     * do Modal pra leitores de tela).
     */
    message: ReactNode;
    /** URL ou import de imagem ilustrativa (opcional) */
    image?: string;
    /** Alt text da imagem — se não informado usa a `message` quando for string */
    imageAlt?: string;
    /**
     * Accessible name quando `message` é ReactNode. Se omitido, cai em
     * "Carregando". Ignorado quando `message` é string.
     */
    accessibleName?: string;
    /**
     * Valor 0-100. Se omitido, mostra indicador indeterminado (pulse sem %).
     * Use quando o backend não reportar progresso real.
     */
    progress?: number;
    /** Tamanho do Modal. Default: 'sm' */
    size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
}
/**
 * Modal de progresso com imagem ilustrativa + mensagem + ProgressBar.
 *
 * Pensado para operações assíncronas longas (upload, OCR, correção por IA, etc).
 * Quando `progress` é omitido, a barra é renderizada em modo indeterminado
 * (`animate-pulse` sem percentual visível).
 *
 * Layout: X no topo direito, imagem centralizada, mensagem abaixo da imagem,
 * progress bar ao final. A mensagem também é injetada como título invisível
 * (`sr-only`) no `<h2>` do Modal pra acessibilidade.
 *
 * @example
 * ```tsx
 * <ProgressModal
 *   isOpen={isLoading}
 *   onClose={() => setIsLoading(false)}
 *   image={myImage}
 *   message="Analisando sua redação..."
 *   // progress opcional — sem valor, usa indicador indeterminado
 * />
 * ```
 */
declare const ProgressModal: ({ isOpen, onClose, message, image, imageAlt, accessibleName, progress, size, }: ProgressModalProps) => import("react/jsx-runtime").JSX.Element;
export default ProgressModal;
//# sourceMappingURL=ProgressModal.d.ts.map