import { AnyRootTypes, AnyRouter } from "@trpc/server/unstable-core-do-not-import";
import { HTTPBatchLinkOptions, HTTPLinkOptions, TRPCLink } from "@trpc/client";
//#region src/app-dir/links/nextHttp.d.ts
interface NextLinkBaseOptions {
  /**
   * How many seconds Next.js caches a response. `false` caches it until it is
   * revalidated. A call can override this with `context.revalidate`.
   * @default false
   */
  revalidate?: number | false;
  /**
   * Send each call with `httpBatchLink` instead of `httpLink`. Each call
   * gets its own link, so calls aren't combined into one request.
   */
  batch?: boolean;
}
type NextLinkSingleOptions<TRoot extends AnyRootTypes> = NextLinkBaseOptions & Omit<HTTPLinkOptions<TRoot>, 'fetch'> & {
  batch?: false;
};
type NextLinkBatchOptions<TRoot extends AnyRootTypes> = NextLinkBaseOptions & Omit<HTTPBatchLinkOptions<TRoot>, 'fetch'> & {
  batch: true;
};
/**
 * A terminating link that sends calls over HTTP with Next.js cache tags, so
 * they can be revalidated.
 *
 * @see https://trpc.io/docs/client/nextjs/app-router-setup
 */
export declare function experimental_nextHttpLink<TRouter extends AnyRouter>(opts: NextLinkSingleOptions<TRouter['_def']['_config']['$types']> | NextLinkBatchOptions<TRouter['_def']['_config']['$types']>): TRPCLink<TRouter>;
//#endregion
//# sourceMappingURL=nextHttp.d.mts.map