import React, { CSSProperties } from 'react';
import { Identifiable, OptionData } from '@custis/common';
import { ColumnInstance, IdType, Row } from 'react-table';
import { TTableRowMode } from '../../models';
export interface IGridRowData<T extends Identifiable> {
    rows: Row<T>[];
    highlightedId: string | undefined;
    tableRowMode: TTableRowMode;
    totalColumnsWidth: number;
    allColumns: ColumnInstance<T>[];
    editRowData: Partial<T>;
    newRowData: Partial<T>;
    subRowColumns: ColumnInstance<T>[];
    subRowId?: number;
    hiddenColumns: IdType<T>[];
    highlightedCells?: OptionData[];
    prepareRow(row: Row<T>): void;
    onClickRow(id: string): void;
    onRowDoubleClick(data: T, gridRowId: string): void;
    handleEditRow(row: T): Promise<void>;
    handleCreateSubRow(row: T): Promise<void>;
    handleEditSubRow(row: T): Promise<void>;
    onEditRowChange(row: Partial<T>): void;
    onNewRowChange(row: Partial<T>): void;
    onHideEditRow(): void;
    getRowStyle(originalRow: T): CSSProperties | undefined;
    highlightCell(key: string, value: string): void;
    isColumnVisible(id: IdType<T>): boolean;
}
interface Props<T extends Identifiable> {
    index: number;
    style?: CSSProperties;
    data: IGridRowData<T>;
}
export declare const GridRowRenderer: <T extends Identifiable>({ index, style, data }: Props<T>) => React.JSX.Element;
export {};
