import { EntityLookupRequest, SynapseClientError } from '@sage-bionetworks/synapse-client';
import { AccessControlList, ColumnModel, Entity, EntityBundle, EntityHeader, EntityId, EntityJson, EntityPath, Evaluation, GetEvaluationParameters, PaginatedResults, UserEntityPermissions, VersionInfo } from '@sage-bionetworks/synapse-types';
import { InfiniteData, QueryKey, UseInfiniteQueryOptions, UseMutationOptions, UseQueryOptions, UseSuspenseQueryOptions } from '@tanstack/react-query';
import { SetOptional } from 'type-fest';
export declare function useGetEntityQueryOptions<T extends Entity>(): (entityId?: string, versionNumber?: string | number) => UseQueryOptions<T, SynapseClientError>;
export declare function useGetEntity<T extends Entity>(entityId?: string, versionNumber?: string | number, options?: Partial<UseQueryOptions<T, SynapseClientError>>): import("@tanstack/react-query").UseQueryResult<import("@tanstack/query-core").NoInfer<T>, SynapseClientError>;
export declare function useGetEntities(entityHeaders: Pick<EntityHeader, 'id' | 'versionNumber'>[], options?: Partial<UseQueryOptions<Entity[], SynapseClientError>>): import("@tanstack/react-query").UseQueryResult<Entity, Error>[];
export declare function useCreateEntity(options?: UseMutationOptions<Entity, SynapseClientError, Pick<Entity, 'name' | 'description' | 'parentId' | 'concreteType'>>): import("@tanstack/react-query").UseMutationResult<Entity, SynapseClientError, Pick<Entity, "name" | "description" | "concreteType" | "parentId">, unknown>;
export declare function useUpdateEntity<T extends Entity>(options?: Partial<UseMutationOptions<T, SynapseClientError, T>>): import("@tanstack/react-query").UseMutationResult<T, SynapseClientError, T, unknown>;
export declare function useDeleteEntity(options?: Partial<UseMutationOptions<string | undefined, SynapseClientError, string>>): import("@tanstack/react-query").UseMutationResult<string | undefined, SynapseClientError, string, unknown>;
export declare function useGetVersions(entityId: string, offset?: number, limit?: number, options?: Partial<UseQueryOptions<PaginatedResults<VersionInfo>, SynapseClientError>>): import("@tanstack/react-query").UseQueryResult<PaginatedResults<VersionInfo>, SynapseClientError>;
export declare function useGetVersionsInfinite<TData = InfiniteData<PaginatedResults<VersionInfo>>>(entityId: string, options: Partial<UseInfiniteQueryOptions<PaginatedResults<VersionInfo>, SynapseClientError, TData, QueryKey, number | undefined>>): import("@tanstack/react-query").UseInfiniteQueryResult<TData, SynapseClientError>;
export declare function getStandardEntityFields(json: EntityJson): EntityJson;
export declare function removeStandardEntityFields(json: EntityJson): Record<string, string | number | boolean | string[] | number[] | boolean[] | undefined>;
/**
 * This hook automatically transforms the data to include these objects:
 * - `entity`: the unmodified Entity data object
 * - `entityMetadata`: the standard entity fields contained in the JSON response
 * - `annotations`: the annotations contained in the JSON response
 *
 * The union of these objects would be equal in value to the `data` object.
 */
export declare function useGetJson(entityId: string, versionNumber: number | undefined, includeDerivedAnnotations: boolean, options?: Partial<UseQueryOptions<EntityJson, SynapseClientError>>): import("@tanstack/react-query").UseQueryResult<{
    entity: EntityJson;
    entityMetadata: EntityJson;
    annotations: Record<string, string | number | boolean | string[] | number[] | boolean[] | undefined>;
}, SynapseClientError>;
export declare function useUpdateViaJson(options?: Partial<UseMutationOptions<EntityJson, SynapseClientError, EntityJson>>): import("@tanstack/react-query").UseMutationResult<EntityJson, SynapseClientError, EntityJson, unknown>;
export declare function useGetEntityPath(entityId: string, options?: Partial<UseQueryOptions<EntityPath, SynapseClientError>>): import("@tanstack/react-query").UseQueryResult<EntityPath, SynapseClientError>;
export declare function useGetEntityACL(entityId: string, options?: Partial<UseQueryOptions<AccessControlList, SynapseClientError>>): import("@tanstack/react-query").UseQueryResult<AccessControlList, SynapseClientError>;
export declare function useGetEntityAlias(alias: string, options?: Partial<UseQueryOptions<EntityId | null, SynapseClientError>>): import("@tanstack/react-query").UseQueryResult<EntityId | null, SynapseClientError>;
export declare function useGetEntityEvaluations(entityId: string, params?: GetEvaluationParameters, options?: Partial<UseQueryOptions<Evaluation[] | null, SynapseClientError>>): import("@tanstack/react-query").UseQueryResult<Evaluation[] | null, SynapseClientError>;
export declare function useGetEntityPermissions(entityId: string, options?: Partial<UseQueryOptions<UserEntityPermissions | null, SynapseClientError>>): import("@tanstack/react-query").UseQueryResult<UserEntityPermissions | null, SynapseClientError>;
export declare function useCreateEntityACL(options?: Partial<UseMutationOptions<AccessControlList, SynapseClientError, AccessControlList>>): import("@tanstack/react-query").UseMutationResult<AccessControlList, SynapseClientError, AccessControlList, unknown>;
export declare function useUpdateEntityACL(options?: Partial<UseMutationOptions<AccessControlList, SynapseClientError, AccessControlList>>): import("@tanstack/react-query").UseMutationResult<AccessControlList, SynapseClientError, AccessControlList, unknown>;
export declare function useDeleteEntityACL(options?: Partial<UseMutationOptions<void, SynapseClientError, string>>): import("@tanstack/react-query").UseMutationResult<void, SynapseClientError, string, unknown>;
/**
 * Retrieve the ACL of an entity. This call will succeed even for entities where the caller
 * does not have READ permission.
 * @param entityId
 * @param options
 */
export declare function useSuspenseGetEntityBenefactorACL(entityId: string, options?: Partial<UseSuspenseQueryOptions<EntityBundle<{
    includeBenefactorACL: true;
}>, SynapseClientError, AccessControlList>>): import("@tanstack/react-query").UseSuspenseQueryResult<AccessControlList, SynapseClientError>;
type UpdateTableMutationRequest = {
    entityId: string;
    originalColumnModels: ColumnModel[];
    newColumnModels: SetOptional<ColumnModel, 'id'>[];
};
export declare function useUpdateTableColumns(options?: Partial<UseMutationOptions<unknown, SynapseClientError, UpdateTableMutationRequest>>): import("@tanstack/react-query").UseMutationResult<unknown, SynapseClientError, UpdateTableMutationRequest, unknown>;
type EntityLookupQueryData = string | null;
export declare function useGetEntityLookupQueryOptions(): (entityLookupRequest: EntityLookupRequest) => UseQueryOptions<EntityLookupQueryData, SynapseClientError>;
export {};
//# sourceMappingURL=useEntity.d.ts.map