import { CSSProperties } from 'react';
import { IArchbaseDataSourceBase } from '@archbase/data';
export type ArchbaseColumnType = 'text' | 'number' | 'date' | 'boolean' | 'currency';
export interface ArchbaseColumnDef<T> {
    /** Campo do registro mapeado para esta coluna */
    field: keyof T | string;
    /** Cabeçalho exibido na planilha */
    header: string;
    /** Largura da coluna em pixels */
    width?: number;
    /** Tipo do dado */
    type?: ArchbaseColumnType;
    /** Formato numérico (ex: '#,##0.00') */
    format?: string;
    /** Se a coluna é editável */
    editable?: boolean;
}
export interface ArchbaseSpreadsheetProps<T, ID> {
    /** Fonte de dados que fornece os registros */
    dataSource?: IArchbaseDataSourceBase<T>;
    /** Definição de colunas para mapeamento DataSource -> planilha */
    columns?: ArchbaseColumnDef<T>[];
    /** Dados standalone no formato Sheet[] do fortune-sheet */
    data?: any[];
    /** Permite edição (default: true) */
    editable?: boolean;
    /** Exibe a toolbar (default: true) */
    showToolbar?: boolean;
    /** Exibe a barra de fórmulas (default: true) */
    showFormulaBar?: boolean;
    /** Exibe as abas de planilhas (default: true) */
    showSheetTabs?: boolean;
    /** Altura do componente */
    height?: string | number;
    /** Largura do componente */
    width?: string | number;
    /** Callback quando uma célula é alterada */
    onCellChange?: (row: number, col: number, oldValue: any, newValue: any) => void;
    /** Callback quando a seleção muda */
    onSelectionChange?: (ranges: any[]) => void;
    /** Rótulo (Input.Wrapper) */
    label?: string;
    /** Descrição (Input.Wrapper) */
    description?: string;
    /** Somente leitura */
    readOnly?: boolean;
    /** Locale (default: 'pt-BR') */
    locale?: string;
    /** Estilo adicional do container */
    style?: CSSProperties;
    /** Classe CSS adicional */
    className?: string;
}
declare function ArchbaseSpreadsheetInner<T, ID>(props: ArchbaseSpreadsheetProps<T, ID>): import("react/jsx-runtime").JSX.Element;
export declare const ArchbaseSpreadsheet: typeof ArchbaseSpreadsheetInner;
export {};
