import type { CreateReactUtils, DecorateRouterRecord, TRPCUseQueries, TRPCUseSuspenseQueries } from '@trpc/react-query/shared';
import type { AnyRouter, ProtectedIntersection } from '@trpc/server/unstable-core-do-not-import';
import type { NextPageContext } from 'next/types';
import type { WithTRPCNoSSROptions, WithTRPCSSROptions } from './withTRPC';
import { withTRPC } from './withTRPC';
/**
 * @internal
 */
export interface CreateTRPCNextBase<TRouter extends AnyRouter, TSSRContext extends NextPageContext> {
    /**
     * @deprecated renamed to `useUtils` and will be removed in a future tRPC version
     *
     * @see https://trpc.io/docs/v11/client/react/useUtils
     */
    useContext(): CreateReactUtils<TRouter, TSSRContext>;
    /**
     * @see https://trpc.io/docs/v11/client/react/useUtils
     */
    useUtils(): CreateReactUtils<TRouter, TSSRContext>;
    withTRPC: ReturnType<typeof withTRPC<TRouter, TSSRContext>>;
    useQueries: TRPCUseQueries<TRouter>;
    useSuspenseQueries: TRPCUseSuspenseQueries<TRouter>;
}
/**
 * @internal
 */
export type CreateTRPCNext<TRouter extends AnyRouter, TSSRContext extends NextPageContext> = ProtectedIntersection<CreateTRPCNextBase<TRouter, TSSRContext>, DecorateRouterRecord<TRouter['_def']['_config']['$types'], TRouter['_def']['record']>>;
export declare function createTRPCNext<TRouter extends AnyRouter, TSSRContext extends NextPageContext = NextPageContext>(opts: WithTRPCNoSSROptions<TRouter> | WithTRPCSSROptions<TRouter>): CreateTRPCNext<TRouter, TSSRContext>;
//# sourceMappingURL=createTRPCNext.d.ts.map