import React from 'react';
import type UIAnalyticsEvent from '@atlaskit/analytics-next/UIAnalyticsEvent';
import noop from '@atlaskit/ds-lib/noop';
import { type RankEnd, type RowType, type SortOrderType, type StatefulProps } from '../types';
interface State {
    page?: number;
    sortKey?: string;
    sortOrder?: SortOrderType;
    rows?: RowType[];
}
/**
 * __Dynamic Table__
 *
 * A table displays rows of data with built-in pagination, sorting, and re-ordering functionality.
 *
 * - [Examples](https://atlaskit.atlassian.com/packages/design-system/dynamic-table)
 * - [Code](https://bitbucket.org/atlassian/atlassian-frontend/packages/design-system/dynamic-table)
 *
 * @example
 * ```jsx
 * import DynamicTable from '@atlaskit/dynamic-table';
 *
 * export default function TableUncontrolled() {
 *  return (
 *   <DynamicTable
 *    head={head}
 *    rows={rows}
 *    rowsPerPage={10}
 *    defaultPage={1}
 *    loadingSpinnerSize="large"
 *    isLoading={false}
 *   />
 *  );
 * }
 * ```
 */
export default class DynamicTable extends React.Component<StatefulProps, State> {
    static defaultProps: {
        defaultPage: number;
        isLoading: boolean;
        isFixedSize: boolean;
        isRankable: boolean;
        onSetPage: typeof noop;
        onSort: typeof noop;
        rowsPerPage: number;
    };
    state: {
        page: number | undefined;
        sortKey: string | undefined;
        sortOrder: SortOrderType | undefined;
        rows: RowType[] | undefined;
    };
    UNSAFE_componentWillReceiveProps(newProps: StatefulProps): void;
    onSetPageHandler: (page: number, analyticsEvent?: UIAnalyticsEvent) => void;
    onSortHandler: ({ key, item, sortOrder }: any, analyticsEvent?: UIAnalyticsEvent) => void;
    onRankEndIfExistsHandler: (params: RankEnd) => void;
    onRankEndHandler: (params: RankEnd) => void;
    render(): React.JSX.Element;
}
export {};
