import { SugaredQualifiedEntityList } from '@contember/binding';
import { ComponentType, ReactElement, ReactNode } from 'react';
import type { DataGridContainerProps, DataGridContainerPublicProps } from '../base';
import { DataGridState, DataGridStateMethods } from '../base';
export type ControlledDataGridProps<ComponentExtraProps extends {}> = DataGridContainerPublicProps & {
    state: DataGridState;
    stateMethods: DataGridStateMethods;
    dataGridKey?: string;
    entities: SugaredQualifiedEntityList['entities'];
    children: ReactNode;
    itemsPerPage?: number | null;
} & ({} | {
    component: ComponentType<DataGridContainerProps & ComponentExtraProps>;
    componentProps: ComponentExtraProps;
});
/**
 * Supplementary DataGrid component for advanced use. Using this component, you can access and modify internal state such as filters or pagination. Use this component together with a {@link useDataGrid} hook.
 *
 * @example
 * ```
 * const dataGrid = useDataGrid({
 *   entities: "Article",
 * })
 * const applyFilter = () => {
 *     dataGrid.stateMethods.setFilter('title', myFilter)
 * }
 * <ControlledDataGrid {...dataGrid}>
 *   <TextCell header="Title" field="title" />
 *   <TextCell header="Author" field="author.name" />
 * </ControlledDataGrid>
 * ```
 *
 *
 * @group Data grid
 */
export declare const ControlledDataGrid: <ComponentProps extends {}>(props: ControlledDataGridProps<ComponentProps>) => ReactElement;
//# sourceMappingURL=ControlledDataGrid.d.ts.map