import type { ApolloClient, DocumentNode, OperationVariables, Reference, StoreObject, TypedDocumentNode } from "@apollo/client";
import type { FragmentType, MaybeMasked } from "@apollo/client/masking";
import type { VariablesOption } from "@apollo/client/react/internal";
import type { NoInfer } from "@apollo/client/utilities";
type From<TData> = StoreObject | Reference | FragmentType<NoInfer<TData>> | string | null;
export declare namespace useSuspenseFragment {
    type Options<TData, TVariables extends OperationVariables> = {
        /**
         * A GraphQL document created using the `gql` template string tag from
         * `graphql-tag` with one or more fragments which will be used to determine
         * the shape of data to read. If you provide more than one fragment in this
         * document then you must also specify `fragmentName` to select a single.
         */
        fragment: DocumentNode | TypedDocumentNode<TData, TVariables>;
        /**
         * The name of the fragment in your GraphQL document to be used. If you do
         * not provide a `fragmentName` and there is only one fragment in your
         * `fragment` document then that fragment will be used.
         */
        fragmentName?: string;
        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;
    } & VariablesOption<NoInfer<TVariables>>;
    type Result<TData> = {
        data: MaybeMasked<TData>;
    };
}
export declare function useSuspenseFragment<TData, TVariables extends OperationVariables = OperationVariables>(options: useSuspenseFragment.Options<TData, TVariables> & {
    from: NonNullable<From<TData>>;
}): useSuspenseFragment.Result<TData>;
export declare function useSuspenseFragment<TData, TVariables extends OperationVariables = OperationVariables>(options: useSuspenseFragment.Options<TData, TVariables> & {
    from: null;
}): useSuspenseFragment.Result<null>;
export declare function useSuspenseFragment<TData, TVariables extends OperationVariables = OperationVariables>(options: useSuspenseFragment.Options<TData, TVariables> & {
    from: From<TData>;
}): useSuspenseFragment.Result<TData | null>;
export declare function useSuspenseFragment<TData, TVariables extends OperationVariables = OperationVariables>(options: useSuspenseFragment.Options<TData, TVariables>): useSuspenseFragment.Result<TData>;
export {};
//# sourceMappingURL=useSuspenseFragment.d.ts.map
