import { type BaseRecord, type CrudFilters, type HttpError, type Pagination, type Prettify, type UseUpdateProps, type useTableProps as useTablePropsCore, type useTableReturnType as useTableReturnTypeCore } from "@refinedev/core";
import type { DataGridProps, GridFilterModel } from "@mui/x-data-grid";
type DataGridPropsOverride = Omit<DataGridProps, "onFilterModelChange"> & {
    onFilterModelChange: (model: GridFilterModel) => void;
};
type DataGridPropsType = Required<Pick<DataGridPropsOverride, "rows" | "loading" | "rowCount" | "sortingMode" | "sortModel" | "onSortModelChange" | "filterMode" | "onFilterModelChange" | "disableRowSelectionOnClick" | "onStateChange" | "paginationMode">> & Pick<DataGridProps, "paginationModel" | "onPaginationModelChange" | "filterModel" | "filterDebounceMs" | "processRowUpdate">;
export type UseDataGridProps<TQueryFnData, TError extends HttpError, TSearchVariables, TData extends BaseRecord> = Omit<useTablePropsCore<TQueryFnData, TError, TData>, "pagination" | "filters"> & {
    onSearch?: (data: TSearchVariables) => CrudFilters | Promise<CrudFilters>;
    pagination?: Prettify<Omit<Pagination, "pageSize"> & {
        /**
         * Initial number of items per page
         * @default 25
         */
        pageSize?: number;
    }>;
    filters?: Prettify<Omit<NonNullable<useTablePropsCore<TQueryFnData, TError, TData>["filters"]>, "defaultBehavior"> & {
        /**
         * Default behavior of the `setFilters` function
         * @default "replace"
         */
        defaultBehavior?: "replace" | "merge";
    }>;
    editable?: boolean;
    updateMutationOptions?: UseUpdateProps<TData, TError, TData>["mutationOptions"];
};
export type UseDataGridReturnType<TData extends BaseRecord = BaseRecord, TError extends HttpError = HttpError, TSearchVariables = unknown> = useTableReturnTypeCore<TData, TError> & {
    dataGridProps: DataGridPropsType;
    search: (value: TSearchVariables) => Promise<void>;
};
export declare function useDataGrid<TQueryFnData extends BaseRecord = BaseRecord, TError extends HttpError = HttpError, TSearchVariables = unknown, TData extends BaseRecord = TQueryFnData>({ onSearch: onSearchProp, pagination, filters: filtersFromProp, sorters: sortersFromProp, syncWithLocation: syncWithLocationProp, resource: resourceFromProp, successNotification, errorNotification, queryOptions, liveMode: liveModeFromProp, onLiveEvent, liveParams, meta, dataProviderName, overtimeOptions, editable, updateMutationOptions, }?: UseDataGridProps<TQueryFnData, TError, TSearchVariables, TData>): UseDataGridReturnType<TData, TError, TSearchVariables>;
export {};
//# sourceMappingURL=index.d.ts.map