import { default as React } from 'react';
import { MantineSize, MantineColor } from '@mantine/core';
export interface ExcelExportColumn {
    /** Campo/key do dado */
    field: string;
    /** Label do cabeçalho */
    header: string;
    /** Largura da coluna em caracteres */
    width?: number;
    /** Formatador de valor */
    formatter?: (value: any, row: any) => string | number;
    /** Se a coluna deve ser incluída na exportação */
    visible?: boolean;
}
export interface ArchbaseDataGridExcelExportProps<T = any> {
    /** Dados a serem exportados */
    data: T[];
    /** Colunas a serem exportadas */
    columns: ExcelExportColumn[];
    /** Nome do arquivo (sem extensão) */
    filename?: string;
    /** Nome da planilha */
    sheetName?: string;
    /** Se deve incluir apenas dados filtrados (se aplicável) */
    includeFiltered?: boolean;
    /** Formato de data para colunas de data */
    dateFormat?: string;
    /** Formato de número para colunas numéricas */
    numberFormat?: string;
    /** Se deve incluir cabeçalhos */
    includeHeaders?: boolean;
    /** Callback antes da exportação */
    onBeforeExport?: (data: T[]) => T[] | Promise<T[]>;
    /** Callback após exportação bem sucedida */
    onExportSuccess?: () => void;
    /** Callback em caso de erro */
    onExportError?: (error: Error) => void;
    /** Variante do botão */
    variant?: 'button' | 'icon';
    /** Label do botão */
    label?: string;
    /** Tamanho do botão */
    size?: MantineSize;
    /** Cor do botão */
    color?: MantineColor;
    /** Se o botão está desabilitado */
    disabled?: boolean;
    /** Tooltip */
    tooltip?: string;
    /** Classe CSS */
    className?: string;
    /** Estilo */
    style?: React.CSSProperties;
}
export declare function ArchbaseDataGridExcelExport<T = any>({ data, columns, filename, sheetName, includeFiltered, dateFormat, numberFormat, includeHeaders, onBeforeExport, onExportSuccess, onExportError, variant, label, size, color, disabled, tooltip, className, style, }: ArchbaseDataGridExcelExportProps<T>): import("react/jsx-runtime").JSX.Element;
export declare namespace ArchbaseDataGridExcelExport {
    var displayName: string;
}
export declare function useArchbaseExcelExport<T = any>(): {
    exportToExcel: (data: T[], columns: ExcelExportColumn[], options?: {
        filename?: string;
        sheetName?: string;
        includeHeaders?: boolean;
    }) => Promise<boolean>;
    isExporting: boolean;
    error: Error;
};
