import React from 'react';
import { Header, Headers, Selection } from '../table';
import { TableProps } from '../table/table';
export type RenderViewControl = (searchBar: JSX.Element) => JSX.Element;
export type SearchableTableProps<T extends {
    id: string;
}> = {
    actions?: {
        onHeadersChanged?: (params: Headers) => void;
        onSelectionChanged?: (params: Selection) => void;
    };
    addButton?: JSX.Element;
    children: (React.ReactElement[] | React.ReactElement)[];
    className?: string;
    data: T[];
    emptySearchState?: JSX.Element;
    emptyState?: JSX.Element;
    getInfiniteScrollProps?: TableProps<T>['getInfiniteScrollProps'];
    headers: Header<string>[];
    isLoading?: boolean;
    isStickyLeftColumn?: boolean;
    isStickyRightColumn?: boolean;
    isUseDefaultViewControlStyles?: boolean;
    isViewControlHidden?: boolean;
    paddingBottom?: number;
    pagination?: JSX.Element;
    selectedRowId?: string | null;
    skeletonCount?: number;
    viewControl?: JSX.Element | RenderViewControl;
};
declare function SearchableTableInner<T extends {
    id: string;
}>({ actions, headers, children, addButton, data, isLoading, emptySearchState, paddingBottom, emptyState, pagination, skeletonCount, selectedRowId, viewControl, className, isViewControlHidden, isStickyLeftColumn, isStickyRightColumn, isUseDefaultViewControlStyles, getInfiniteScrollProps, }: SearchableTableProps<T>): JSX.Element;
export declare const SearchableTable: typeof SearchableTableInner;
export {};
