import type { ApolloClient, OperationVariables, Reference, StoreObject } from "../../core/index.js";
import type { Cache } from "../../cache/index.js";
import type { FragmentType, MaybeMasked } from "../../masking/index.js";
import type { NoInfer } from "../types/types.js";
type From<TData> = StoreObject | Reference | FragmentType<NoInfer<TData>> | string | null;
export interface UseSuspenseFragmentOptions<TData, TVars> extends Omit<Cache.DiffOptions<NoInfer<TData>, NoInfer<TVars>>, "id" | "query" | "optimistic" | "previousResult" | "returnPartialData">, Omit<Cache.ReadFragmentOptions<TData, TVars>, "id" | "variables" | "returnPartialData"> {
    from: From<TData>;
    optimistic?: boolean;
    /**
     * The instance of `ApolloClient` to use to look up the fragment.
     *
     * By default, the instance that's passed down via context is used, but you
     * can provide a different instance here.
     *
     * @docGroup 1. Operation options
     */
    client?: ApolloClient<any>;
}
export type UseSuspenseFragmentResult<TData> = {
    data: MaybeMasked<TData>;
};
export declare function useSuspenseFragment<TData, TVariables extends OperationVariables = OperationVariables>(options: UseSuspenseFragmentOptions<TData, TVariables> & {
    from: NonNullable<From<TData>>;
}): UseSuspenseFragmentResult<TData>;
export declare function useSuspenseFragment<TData, TVariables extends OperationVariables = OperationVariables>(options: UseSuspenseFragmentOptions<TData, TVariables> & {
    from: null;
}): UseSuspenseFragmentResult<null>;
export declare function useSuspenseFragment<TData, TVariables extends OperationVariables = OperationVariables>(options: UseSuspenseFragmentOptions<TData, TVariables> & {
    from: From<TData>;
}): UseSuspenseFragmentResult<TData | null>;
export declare function useSuspenseFragment<TData, TVariables extends OperationVariables = OperationVariables>(options: UseSuspenseFragmentOptions<TData, TVariables>): UseSuspenseFragmentResult<TData>;
export {};
//# sourceMappingURL=useSuspenseFragment.d.ts.map