import { IArchbaseDataSourceBase } from '@archbase/data';
import { CSSProperties } from 'react';
export interface ArchbaseLightGridColumn<T> {
    /** Campo do registro (keyof T ou path com notação de ponto) */
    field: keyof T | string;
    /** Texto do cabeçalho */
    header: string;
    /** Largura da coluna em pixels */
    width?: number;
    /** Tipo de dado da coluna */
    type?: 'text' | 'number' | 'date' | 'boolean' | 'currency' | 'custom';
    /** Formato (ex.: "DD/MM/YYYY", "0,0.00", "R$ #.##0,00") */
    format?: string;
    /** Se a coluna e editavel */
    editable?: boolean;
    /** Se a coluna deve ficar fixa a esquerda */
    frozen?: boolean;
    /** Alinhamento do texto */
    align?: 'left' | 'center' | 'right';
}
export interface ArchbaseLightGridProps<T, ID> {
    /** Fonte de dados */
    dataSource?: IArchbaseDataSourceBase<T>;
    /** Definicao das colunas */
    columns: ArchbaseLightGridColumn<T>[];
    /** Dados standalone (usado quando nao ha dataSource) */
    data?: T[];
    /** Habilita edicao de celulas */
    editable?: boolean;
    /** Altura do grid */
    height?: string | number;
    /** Largura do grid */
    width?: string | number;
    /** Exibe numeracao de linhas */
    showRowNumbers?: boolean;
    /** Callback quando uma celula e alterada */
    onCellChange?: (record: T, field: string, oldValue: any, newValue: any) => void;
    /** Callback quando a selecao muda */
    onSelectionChange?: (selection: {
        row: number;
        col: number;
    }[]) => void;
    /** Somente leitura (sobrescreve editable) */
    readOnly?: boolean;
    /** Label exibido acima do grid */
    label?: string;
    /** Descricao exibida abaixo do label */
    description?: string;
    /** Estilo CSS do container */
    style?: CSSProperties;
    /** Classe CSS do container */
    className?: string;
}
declare function ArchbaseLightGridInner<T, ID>(props: ArchbaseLightGridProps<T, ID>): import("react/jsx-runtime").JSX.Element;
export declare const ArchbaseLightGrid: typeof ArchbaseLightGridInner;
export {};
