import { UseInfiniteQueryOptions, UseMutationOptions, UseQueryOptions } from 'react-query';
import { SynapseClient } from '../..';
import { SynapseClientError } from '../../SynapseClient';
import { Entity, EntityJson, EntityJsonValue, PaginatedResults } from '../../synapseTypes';
import { VersionInfo } from '../../synapseTypes/VersionInfo';
export declare function useGetEntity<T extends Entity>(entityId: string, versionNumber?: string | number, options?: UseQueryOptions<T, SynapseClientError>): import("react-query").UseQueryResult<T, SynapseClient.SynapseClientError>;
export declare function useUpdateEntity<T extends Entity>(options?: UseMutationOptions<T, SynapseClientError, T>): import("react-query").UseMutationResult<T, SynapseClient.SynapseClientError, T, unknown>;
export declare function useGetVersions(entityId: string, offset?: number, limit?: number, options?: UseQueryOptions<PaginatedResults<VersionInfo>, SynapseClientError>): import("react-query").UseQueryResult<PaginatedResults<VersionInfo>, SynapseClient.SynapseClientError>;
export declare function useGetVersionsInfinite(entityId: string, options: UseInfiniteQueryOptions<PaginatedResults<VersionInfo>, SynapseClientError>): import("react-query").UseInfiniteQueryResult<PaginatedResults<VersionInfo>, SynapseClient.SynapseClientError>;
export declare function getStandardEntityFields(json: EntityJson): EntityJson;
export declare function removeStandardEntityFields(json: EntityJson): Record<string, string | number | boolean | string[] | number[] | boolean[] | undefined>;
/**
 * In addition to the standard objects returned by {@link useQuery}, this hook also returns the following objects:
 * - `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, options?: UseQueryOptions<EntityJson, SynapseClientError>): {
    entityMetadata: EntityJson | undefined;
    annotations: Record<string, EntityJsonValue> | undefined;
    data: undefined;
    error: null;
    isError: false;
    isIdle: true;
    isLoading: false;
    isLoadingError: false;
    isRefetchError: false;
    isSuccess: false;
    status: "idle";
    dataUpdatedAt: number;
    errorUpdatedAt: number;
    failureCount: number;
    isFetched: boolean;
    isFetchedAfterMount: boolean;
    isFetching: boolean;
    isPlaceholderData: boolean;
    isPreviousData: boolean;
    isRefetching: boolean;
    isStale: boolean;
    refetch: <TPageData>(options?: (import("react-query").RefetchOptions & import("react-query").RefetchQueryFilters<TPageData>) | undefined) => Promise<import("react-query").QueryObserverResult<EntityJson, SynapseClient.SynapseClientError>>;
    remove: () => void;
} | {
    entityMetadata: EntityJson | undefined;
    annotations: Record<string, EntityJsonValue> | undefined;
    data: undefined;
    error: SynapseClient.SynapseClientError;
    isError: true;
    isIdle: false;
    isLoading: false;
    isLoadingError: true;
    isRefetchError: false;
    isSuccess: false;
    status: "error";
    dataUpdatedAt: number;
    errorUpdatedAt: number;
    failureCount: number;
    isFetched: boolean;
    isFetchedAfterMount: boolean;
    isFetching: boolean;
    isPlaceholderData: boolean;
    isPreviousData: boolean;
    isRefetching: boolean;
    isStale: boolean;
    refetch: <TPageData>(options?: (import("react-query").RefetchOptions & import("react-query").RefetchQueryFilters<TPageData>) | undefined) => Promise<import("react-query").QueryObserverResult<EntityJson, SynapseClient.SynapseClientError>>;
    remove: () => void;
} | {
    entityMetadata: EntityJson | undefined;
    annotations: Record<string, EntityJsonValue> | undefined;
    data: undefined;
    error: null;
    isError: false;
    isIdle: false;
    isLoading: true;
    isLoadingError: false;
    isRefetchError: false;
    isSuccess: false;
    status: "loading";
    dataUpdatedAt: number;
    errorUpdatedAt: number;
    failureCount: number;
    isFetched: boolean;
    isFetchedAfterMount: boolean;
    isFetching: boolean;
    isPlaceholderData: boolean;
    isPreviousData: boolean;
    isRefetching: boolean;
    isStale: boolean;
    refetch: <TPageData>(options?: (import("react-query").RefetchOptions & import("react-query").RefetchQueryFilters<TPageData>) | undefined) => Promise<import("react-query").QueryObserverResult<EntityJson, SynapseClient.SynapseClientError>>;
    remove: () => void;
} | {
    entityMetadata: EntityJson | undefined;
    annotations: Record<string, EntityJsonValue> | undefined;
    data: EntityJson;
    error: SynapseClient.SynapseClientError;
    isError: true;
    isIdle: false;
    isLoading: false;
    isLoadingError: false;
    isRefetchError: true;
    isSuccess: false;
    status: "error";
    dataUpdatedAt: number;
    errorUpdatedAt: number;
    failureCount: number;
    isFetched: boolean;
    isFetchedAfterMount: boolean;
    isFetching: boolean;
    isPlaceholderData: boolean;
    isPreviousData: boolean;
    isRefetching: boolean;
    isStale: boolean;
    refetch: <TPageData>(options?: (import("react-query").RefetchOptions & import("react-query").RefetchQueryFilters<TPageData>) | undefined) => Promise<import("react-query").QueryObserverResult<EntityJson, SynapseClient.SynapseClientError>>;
    remove: () => void;
} | {
    entityMetadata: EntityJson | undefined;
    annotations: Record<string, EntityJsonValue> | undefined;
    data: EntityJson;
    error: null;
    isError: false;
    isIdle: false;
    isLoading: false;
    isLoadingError: false;
    isRefetchError: false;
    isSuccess: true;
    status: "success";
    dataUpdatedAt: number;
    errorUpdatedAt: number;
    failureCount: number;
    isFetched: boolean;
    isFetchedAfterMount: boolean;
    isFetching: boolean;
    isPlaceholderData: boolean;
    isPreviousData: boolean;
    isRefetching: boolean;
    isStale: boolean;
    refetch: <TPageData>(options?: (import("react-query").RefetchOptions & import("react-query").RefetchQueryFilters<TPageData>) | undefined) => Promise<import("react-query").QueryObserverResult<EntityJson, SynapseClient.SynapseClientError>>;
    remove: () => void;
};
export declare function useUpdateViaJson(options?: UseMutationOptions<EntityJson, SynapseClientError, EntityJson>): import("react-query").UseMutationResult<EntityJson, SynapseClient.SynapseClientError, EntityJson, unknown>;
