<!-- API Report Version: 2.3 -->

## API Report File for "@atlaskit/dynamic-table"

> Do not edit this file. This report is auto-generated using
> [API Extractor](https://api-extractor.com/).
> [Learn more about API reports](https://hello.atlassian.net/wiki/spaces/UR/pages/1825484529/Package+API+Reports)

### Table of contents

- [Main Entry Types](#main-entry-types)
- [Peer Dependencies](#peer-dependencies)

### Main Entry Types

<!--SECTION START: Main Entry Types-->

```ts
import noop from '@atlaskit/ds-lib/noop';
import { default as React_2 } from 'react';
import { Ref } from 'react';
import { UIAnalyticsEvent } from '@atlaskit/analytics-next';
import { WithAnalyticsEventsProps } from '@atlaskit/analytics-next';
import { WithContextProps } from '@atlaskit/analytics-next';

// @public
class DynamicTable extends React_2.Component<StatefulProps, State> {
	// (undocumented)
	static defaultProps: {
		defaultPage: number;
		isLoading: boolean;
		isFixedSize: boolean;
		isRankable: boolean;
		onSetPage: typeof noop;
		onSort: typeof noop;
		rowsPerPage: number;
	};
	// (undocumented)
	onRankEndHandler: (params: RankEnd) => void;
	// (undocumented)
	onRankEndIfExistsHandler: (params: RankEnd) => void;
	// (undocumented)
	onSetPageHandler: (page: number, analyticsEvent?: UIAnalyticsEvent) => void;
	// (undocumented)
	onSortHandler: ({ key, item, sortOrder }: any, analyticsEvent?: UIAnalyticsEvent) => void;
	// (undocumented)
	render(): JSX.Element;
	// (undocumented)
	state: {
		page: number | undefined;
		sortKey: string | undefined;
		sortOrder: SortOrderType | undefined;
		rows: RowType[] | undefined;
	};
	// (undocumented)
	UNSAFE_componentWillReceiveProps(newProps: StatefulProps): void;
}
export default DynamicTable;

// @public (undocumented)
export const DynamicTableStateless: React_2.ForwardRefExoticComponent<
	Pick<
		Pick<
			Omit<StatelessProps, keyof WithAnalyticsEventsProps>,
			| 'caption'
			| 'emptyView'
			| 'head'
			| 'highlightedRowIndex'
			| 'label'
			| 'loadingSpinnerSize'
			| 'onPageRowsUpdate'
			| 'rows'
			| 'sortKey'
			| 'sortOrder'
			| 'testId'
			| 'totalRows'
		> &
			Partial<
				Pick<
					Omit<StatelessProps, keyof WithAnalyticsEventsProps>,
					| 'isFixedSize'
					| 'isLoading'
					| 'isRankable'
					| 'isRankingDisabled'
					| 'onRankEnd'
					| 'onRankStart'
					| 'onSetPage'
					| 'onSort'
					| 'page'
					| 'paginationi18n'
					| 'rowsPerPage'
				>
			> &
			Partial<
				Pick<
					{
						isLoading: boolean;
						isFixedSize: boolean;
						rowsPerPage: number;
						onSetPage: typeof noop;
						onSort: typeof noop;
						page: number;
						isRankable: boolean;
						isRankingDisabled: boolean;
						onRankStart: typeof noop;
						onRankEnd: typeof noop;
						paginationi18n: {
							prev: string;
							next: string;
							label: string;
							pageLabel: string;
						};
					},
					never
				>
			> &
			React_2.RefAttributes<any> &
			WithContextProps,
		| 'analyticsContext'
		| 'caption'
		| 'emptyView'
		| 'head'
		| 'highlightedRowIndex'
		| 'isFixedSize'
		| 'isLoading'
		| 'isRankable'
		| 'isRankingDisabled'
		| 'key'
		| 'label'
		| 'loadingSpinnerSize'
		| 'onPageRowsUpdate'
		| 'onRankEnd'
		| 'onRankStart'
		| 'onSetPage'
		| 'onSort'
		| 'page'
		| 'paginationi18n'
		| 'rows'
		| 'rowsPerPage'
		| 'sortKey'
		| 'sortOrder'
		| 'testId'
		| 'totalRows'
	> &
		React_2.RefAttributes<any>
>;

// @public (undocumented)
interface HeadCellType extends RowCellType {
	isSortable?: boolean;
	shouldTruncate?: boolean;
	width?: number;
}

// @public (undocumented)
interface HeadType {
	// (undocumented)
	cells: Array<HeadCellType>;
}

// @public (undocumented)
interface I18nShape {
	label: string;
	next: string;
	pageLabel?: string;
	prev: string;
}

// @public (undocumented)
type LoadingSpinnerSizeType = 'large' | 'small';

// @public (undocumented)
interface RankEnd {
	// (undocumented)
	destination?: RankEndLocation;
	// (undocumented)
	sourceIndex: number;
	// (undocumented)
	sourceKey: string;
}

// @public (undocumented)
interface RankEndLocation {
	// (undocumented)
	afterKey?: string;
	// (undocumented)
	beforeKey?: string;
	// (undocumented)
	index: number;
}

// @public (undocumented)
interface RankStart {
	// (undocumented)
	index: number;
	// (undocumented)
	key: string;
}

// @public (undocumented)
interface RowCellType {
	colSpan?: number;
	content?: React_2.ReactNode | string;
	key?: number | string;
	testId?: string;
}

// @public (undocumented)
interface RowType extends React_2.ComponentPropsWithoutRef<'tr'> {
	// (undocumented)
	cells: Array<RowCellType>;
	isHighlighted?: boolean;
	// (undocumented)
	key?: string;
	onClick?: React_2.MouseEventHandler;
	onKeyPress?: React_2.KeyboardEventHandler;
	// (undocumented)
	ref?: Ref<HTMLTableRowElement>;
	testId?: string;
}

// @public
type SortOrderType = 'ASC' | 'DESC';

// @public (undocumented)
interface State {
	// (undocumented)
	page?: number;
	// (undocumented)
	rows?: RowType[];
	// (undocumented)
	sortKey?: string;
	// (undocumented)
	sortOrder?: SortOrderType;
}

// @public (undocumented)
interface StatefulProps extends WithAnalyticsEventsProps {
	caption?: React_2.ReactNode;
	defaultPage?: number;
	defaultSortKey?: string;
	defaultSortOrder?: SortOrderType;
	emptyView?: React_2.ReactElement<any>;
	head?: HeadType;
	highlightedRowIndex?: number | number[];
	isFixedSize?: boolean;
	isLoading?: boolean;
	isRankable?: boolean;
	isRankingDisabled?: boolean;
	label?: string;
	loadingSpinnerSize?: LoadingSpinnerSizeType;
	onPageRowsUpdate?: (pageRows: Array<RowType>) => void;
	onRankEnd?: (rankEnd: RankEnd) => void;
	onRankStart?: (rankStart: RankStart) => void;
	onSetPage?: (page: number, UIAnalyticsEvent?: UIAnalyticsEvent) => void;
	onSort?: (data: any, UIAnalyticsEvent?: UIAnalyticsEvent) => void;
	page?: number;
	paginationi18n?: I18nShape;
	rows?: Array<RowType>;
	rowsPerPage?: number;
	sortKey?: string;
	sortOrder?: SortOrderType;
	testId?: string;
}

// @public (undocumented)
interface StatelessProps extends WithAnalyticsEventsProps {
	caption?: React_2.ReactNode;
	emptyView?: React_2.ReactElement<any>;
	head?: HeadType;
	highlightedRowIndex?: number | number[];
	isFixedSize?: boolean;
	isLoading?: boolean;
	isRankable?: boolean;
	isRankingDisabled?: boolean;
	label?: string;
	loadingSpinnerSize?: LoadingSpinnerSizeType;
	onPageRowsUpdate?: (pageRows: Array<RowType>) => void;
	onRankEnd?: (rankEnd: RankEnd, uiAnalyticsEvent?: UIAnalyticsEvent) => void;
	onRankStart?: (rankStart: RankStart) => void;
	onSetPage?: (page: number, UIAnalyticsEvent?: UIAnalyticsEvent) => void;
	onSort?: (data: any, UIAnalyticsEvent?: UIAnalyticsEvent) => void;
	page?: number;
	paginationi18n?: I18nShape;
	rows?: Array<RowType>;
	rowsPerPage?: number;
	sortKey?: string;
	sortOrder?: SortOrderType;
	testId?: string;
	totalRows?: number;
}

// (No @packageDocumentation comment for this package)
```

<!--SECTION END: Main Entry Types-->

### Peer Dependencies

<!--SECTION START: Peer Dependencies-->

```json
{
	"react": "^16.8.0",
	"react-dom": "^16.8.0"
}
```

<!--SECTION END: Peer Dependencies-->
