import { SortDirection } from '@ag-grid-community/core';
import { CustomCellRendererProps } from '@ag-grid-community/react';
import { OnyxProps, ProjectProps } from '../interfaces';
import { RecordType, ListResponse } from '../types';

type InputData = Record<string, string | number | boolean | object | null>[];
interface TableProps extends OnyxProps {
    defaultFileNamePrefix: string;
    headerNames?: Map<string, string>;
    headerTooltips?: Map<string, string>;
    headerTooltipPrefix?: string;
    tooltipFields?: string[];
    flexOnly?: string[];
    includeOnly?: string[];
    defaultSort?: Map<string, SortDirection>;
    footer?: string;
    cellRenderers?: Map<string, (params: CustomCellRendererProps) => JSX.Element>;
}
interface ClientTableProps extends TableProps {
    data: InputData;
}
interface ServerPaginatedTableProps extends TableProps, ProjectProps {
    response: ListResponse<RecordType>;
    searchPath: string;
    searchParameters: string;
    pageSize: number;
}
declare function Table(props: ClientTableProps): import("react/jsx-runtime").JSX.Element;
declare function ServerPaginatedTable(props: ServerPaginatedTableProps): import("react/jsx-runtime").JSX.Element;
export default Table;
export { ServerPaginatedTable };
