import { ClientContext, Client, NestedClient } from '@orpc/client'; import { EntryKey, UseQueryOptions, UseMutationOptions, _EmptyObject } from '@pinia/colada'; import { PartialDeep, SetOptional, MaybeOptionalOptions } from '@orpc/shared'; import { MaybeRefOrGetter } from 'vue'; interface BuildKeyOptions { type?: 'query' | 'mutation'; input?: PartialDeep; } declare function buildKey(path: string[], options?: BuildKeyOptions): EntryKey; interface GeneralUtils { /** * Generate a query/mutation key for checking status, invalidate, set, get, etc. * * @see {@link https://orpc.dev/docs/integrations/pinia-colada#query-mutation-key Pinia Colada Query/Mutation Key Docs} */ key(options?: BuildKeyOptions): EntryKey; } declare function createGeneralUtils(path: string[]): GeneralUtils; type UseQueryFnContext = Parameters['query']>[0]; type QueryOptionsIn = (undefined extends TInput ? { input?: MaybeRefOrGetter; } : { input: MaybeRefOrGetter; }) & (Record extends TClientContext ? { context?: MaybeRefOrGetter; } : { context: MaybeRefOrGetter; }) & SetOptional, 'key' | 'query'>; type QueryOptions = UseQueryOptions; type MutationOptionsIn> = (Record extends TClientContext ? { context?: MaybeRefOrGetter; } : { context: MaybeRefOrGetter; }) & SetOptional, 'mutation'>; type MutationOptions> = UseMutationOptions; interface ProcedureUtils { /** * Calling corresponding procedure client * * @see {@link https://orpc.dev/docs/integrations/pinia-colada#calling-procedure-clients Pinia Colada Calling Procedure Client Docs} */ call: Client; /** * Generate options used for useQuery/... * * @see {@link https://orpc.dev/docs/integrations/pinia-colada#query-options-utility Pinia Colada Query Options Utility Docs} */ queryOptions(...rest: MaybeOptionalOptions>): NoInfer>; /** * Generate options used for useMutation/... * * @see {@link https://orpc.dev/docs/integrations/pinia-colada#mutation-options Pinia Colada Mutation Options Docs} */ mutationOptions = _EmptyObject>(...rest: MaybeOptionalOptions>): NoInfer>; } interface CreateProcedureUtilsOptions { path: string[]; } declare function createProcedureUtils(client: Client, options: CreateProcedureUtilsOptions): ProcedureUtils; type RouterUtils> = T extends Client ? ProcedureUtils & GeneralUtils : { [K in keyof T]: T[K] extends NestedClient ? RouterUtils : never; } & GeneralUtils; interface CreateRouterUtilsOptions { path?: string[]; } /** * Create a router utils from a client. * * @info Both client-side and server-side clients are supported. * @see {@link https://orpc.dev/docs/integrations/pinia-colada Pinia Colada Docs} */ declare function createRouterUtils>(client: T, options?: CreateRouterUtilsOptions): RouterUtils; export { buildKey, createGeneralUtils, createRouterUtils as createORPCVueColadaUtils, createProcedureUtils, createRouterUtils }; export type { BuildKeyOptions, CreateProcedureUtilsOptions, CreateRouterUtilsOptions, GeneralUtils, MutationOptions, MutationOptionsIn, ProcedureUtils, QueryOptions, QueryOptionsIn, RouterUtils, UseQueryFnContext };