import type { Action } from "@reduxjs/toolkit";
import type { State } from "@metabase/embedding-sdk-react/dist/frontend/src/metabase-types/store";
export interface EntityInfo<TId> {
    id: TId;
}
export interface EntityQueryOptions<TId> {
    entityId?: TId;
}
export interface UseEntityUpdateProps<TId, TEntity, TEntityInfo extends EntityInfo<TId>, TEntityData> {
    update: (entityInfo: TEntityInfo, updates: Partial<TEntityData>) => Action;
    getObject: (state: State, options: EntityQueryOptions<TId>) => TEntity | undefined;
}
export interface UseEntityUpdateResult<TId, TEntity, TEntityInfo extends EntityInfo<TId>, TEntityData> {
    data: TEntity | undefined;
    isLoading: boolean;
    error: unknown;
    mutate: (entityInfo: TEntityInfo, updates: Partial<TEntityData>) => Promise<TEntity>;
}
/**
 * @deprecated use "metabase/api" instead
 */
export declare const useEntityUpdate: <TId, TEntity, TEntityInfo extends EntityInfo<TId>, TEntityData>({ update, getObject, }: UseEntityUpdateProps<TId, TEntity, TEntityInfo, TEntityData>) => UseEntityUpdateResult<TId, TEntity, TEntityInfo, TEntityData>;
