import type { CreateTRPCClientOptions, Resolver, TRPCUntypedClient } from '@trpc/client';
import type { AnyProcedure, AnyQueryProcedure, AnyRootConfig, AnyRouter, Filter, inferProcedureInput, ProtectedIntersection } from '@trpc/server/unstable-core-do-not-import';
/**
 * @internal
 */
export type UseProcedureRecord<TRouter extends AnyRouter> = {
    [TKey in keyof Filter<TRouter['_def']['record'], AnyQueryProcedure | AnyRouter>]: TRouter['_def']['record'][TKey] extends AnyRouter ? UseProcedureRecord<TRouter['_def']['record'][TKey]> : Resolver<TRouter['_def']['_config'], TRouter['_def']['record'][TKey]>;
};
export declare function createUseProxy<TRouter extends AnyRouter>(client: TRPCUntypedClient<TRouter>): UseProcedureRecord<TRouter>;
type NextAppRouterUse<TRouter extends AnyRouter> = {
    <TData extends Promise<unknown>[]>(cb: (t: UseProcedureRecord<TRouter>) => [...TData]): {
        [TKey in keyof TData]: Awaited<TData[TKey]>;
    };
    <TData extends Promise<unknown>>(cb: (t: UseProcedureRecord<TRouter>) => TData): Awaited<TData>;
};
type CreateTRPCNextAppRouterBase<TRouter extends AnyRouter> = {
    use: NextAppRouterUse<TRouter>;
};
export type CreateTRPCNextAppRouter<TRouter extends AnyRouter> = ProtectedIntersection<CreateTRPCNextAppRouterBase<TRouter>, UseProcedureRecord<TRouter>>;
/**
 * @internal
 */
export interface CreateTRPCNextAppRouterOptions<TRouter extends AnyRouter> {
    config: () => CreateTRPCClientOptions<TRouter>;
}
/**
 * @internal
 */
export declare function generateCacheTag(procedurePath: string, input: any): string;
export declare function isFormData(value: unknown): value is FormData;
/**
 * @internal
 */
export interface ActionHandlerDef {
    input?: any;
    output?: any;
    errorShape: any;
}
/**
 * @internal
 */
export type inferActionDef<TConfig extends AnyRootConfig, TProc extends AnyProcedure> = {
    input: inferProcedureInput<TProc>;
    output: TProc['_def']['_output_out'];
    errorShape: TConfig['$types']['errorShape'];
};
export {};
//# sourceMappingURL=shared.d.ts.map