import { TableProps } from './Table';
import { ObjectWithId, PaginationState } from '../../@types';
/**
 * Paginated Table Props
 */
type BasePaginatedTableProps = {
    /**
     * Current state of the pagination (page number, page size, etc.)
     * This is intended to be used with Redux -- set your redux slice value here.
     */
    paginationState: PaginationState;
    /**
     * Callback when the user changes the page number.
     * This is intended to be used with Redux -- call your dispatch here.
     */
    onPageChange: (newPage: number) => void;
    /**
     * Callback when the user changes the number of rows per page.
     * This is intended to be used with Redux -- call your dispatch here.
     */
    onRowsPerPageChange: (newPage: number) => void;
    /**
     * Hides the pagination controls when true. NOTE: pagination controls will always auto-hide when the table is empty.
     *
     * IMPORTANT: Make sure this is not changed after the page loads. Otherwise the pagination controls could disappear
     * when the user changes the pagination settings (Ex. changing page size from 5 to 25 when only 15 records exist).
     */
    hidePaginationControls?: boolean;
    /**
     * The options available to the user representing the Number of rows per page
     * @default [5, 10, 25]
     */
    rowsPerPageOptions?: Array<number>;
};
export type PaginatedTableProps<T> = BasePaginatedTableProps & Omit<TableProps<T>, 'sortField' | 'sortOrder'>;
/**
 * Table with Pagination.
 *
 * This is a barebones paginated table. For additional functionality, see {@link file://./ListPage.tsx}
 *
 * Pagination controls will auto-hide when the table is empty or hidePaginationControls is true
 */
export declare const PaginatedTable: <T extends ObjectWithId>(props: PaginatedTableProps<T>) => import("react/jsx-runtime").JSX.Element;
export default PaginatedTable;
