import { A as FeatureFlags, O as DefaultFeatureFlags, j as KeyPrefixOptions, s as TRPCOptionsProxy } from "./createOptionsProxy-DPbXqxn8.cjs";
import { QueryClient } from "@tanstack/react-query";
import { TRPCClient } from "@trpc/client";
import { AnyTRPCRouter } from "@trpc/server";
import * as React from "react";
//#region src/internals/Context.d.ts
type TRPCProviderType<TRouter extends AnyTRPCRouter, TFeatureFlags extends FeatureFlags = DefaultFeatureFlags> = React.FC<{
  children: React.ReactNode;
  queryClient: QueryClient;
  trpcClient: TRPCClient<TRouter>;
} & KeyPrefixOptions<TFeatureFlags>>;
/**
 * What {@link createTRPCContext} returns.
 */
interface CreateTRPCContextResult<TRouter extends AnyTRPCRouter, TFeatureFlags extends FeatureFlags = DefaultFeatureFlags> {
  /**
   * Provides the tRPC client and `QueryClient` to `useTRPC` and
   * `useTRPCClient`.
   */
  TRPCProvider: TRPCProviderType<TRouter, TFeatureFlags>;
  /**
   * Returns the options proxy for your router.
   * @see https://trpc.io/docs/client/tanstack-react-query/usage
   */
  useTRPC: () => TRPCOptionsProxy<TRouter, TFeatureFlags>;
  /**
   * Returns the tRPC client, for calling procedures directly.
   * @see https://trpc.io/docs/client/tanstack-react-query/usage#useTRPCClient
   */
  useTRPCClient: () => TRPCClient<TRouter>;
}
/**
 * Creates a `TRPCProvider` and the `useTRPC` and `useTRPCClient` hooks for
 * your router.
 *
 * @example
 * ```ts
 * export const { TRPCProvider, useTRPC, useTRPCClient } =
 *   createTRPCContext<AppRouter>();
 * ```
 *
 * @see https://trpc.io/docs/client/tanstack-react-query/setup#3a-set-up-the-trpc-context-provider
 */
declare function createTRPCContext<TRouter extends AnyTRPCRouter, TFeatureFlags extends FeatureFlags = DefaultFeatureFlags>(): CreateTRPCContextResult<TRouter, TFeatureFlags>;
//#endregion
//#region src/internals/HydrateClient.d.ts
/** The props of the component `unstable_createHydrateClient` returns. */
interface unstable_HydrateClientProps {
  /** Rendered inside the hydration boundary. */
  children?: React.ReactNode;
}
/**
 * Create a `HydrateClient` server component for the request's `QueryClient`.
 * It sends the queries started so far in this request to the browser,
 * pending ones as promises that stream in as they settle. A query an earlier
 * `HydrateClient` already sent is skipped, so nesting them is fine.
 *
 * React Server Components only: the package resolves to the server build
 * through the `react-server` export condition.
 *
 * @see https://trpc.io/docs/client/tanstack-react-query/handles#hydrate-client
 */
declare function unstable_createHydrateClient(_queryClient: QueryClient | (() => QueryClient)): React.FC<unstable_HydrateClientProps>;
/**
 * `unstable_createHydrateClient` for the `react-server` export condition.
 * @internal
 */
declare function createHydrateClientReactServer(queryClient: QueryClient | (() => QueryClient)): React.FC<unstable_HydrateClientProps>;
//#endregion
export { createTRPCContext as i, unstable_HydrateClientProps as n, unstable_createHydrateClient as r, createHydrateClientReactServer as t };
//# sourceMappingURL=index-D9Nc91C9.d.cts.map