import type { EdenClient, EmptyToVoid, ExtractEdenTreatyRouteParams, ExtractEdenTreatyRouteParamsInput, InferRouteError, InferRouteOptions, InferRouteOutput } from '@aydee-app/eden'; import type { SuspenseQueriesOptions, UseSuspenseQueryResult } from '@tanstack/react-query'; import type { AnyElysia, RouteSchema } from 'elysia'; import type { UseQueryOptionsForUseSuspenseQueries } from '../../integration/internal/use-query-options-for-use-suspense-queries'; export type EdenTreatyUseSuspenseQueries = >(queriesCallback: (t: EdenTreatyUseSuspenseQueriesProxy) => readonly [...TQueriesOptions]) => UseSuspenseQueriesResult; /** * A proxy object that returns {@link CreateQueryOptions} (instead of an actual create query result). * Passed to `createQueries` caller to use. */ export type EdenTreatyUseSuspenseQueriesProxy = T extends { _routes: infer TSchema extends Record; } ? EdenTreatyUseSuspenseQueriesProxyMapping : 'Please install Elysia before using Eden'; export type EdenTreatyUseSuspenseQueriesProxyMapping, TPath extends any[] = [], TRouteParams = ExtractEdenTreatyRouteParams> = { [K in Exclude]: TSchema[K] extends RouteSchema ? UseSuspenseQueriesHook : EdenTreatyUseSuspenseQueriesProxyMapping; } & ({} extends TRouteParams ? {} : (params: ExtractEdenTreatyRouteParamsInput) => EdenTreatyUseSuspenseQueriesProxyMapping], TPath>); /** * When a route is encountered, it is replaced with a callable function that takes the same inputs. */ export type UseSuspenseQueriesHook['query'], TOutput = InferRouteOutput, TError = InferRouteError> = (input: EmptyToVoid, opts?: UseQueryOptionsForUseSuspenseQueries) => UseQueryOptionsForUseSuspenseQueries; export declare function createTreatyUseSuspenseQueriesProxy(client: EdenClient, paths?: string[]): EdenTreatyUseSuspenseQueriesProxy; export type UseSuspenseQueriesResult[]> = [ { [TKey in keyof TQueriesOptions]: TQueriesOptions[TKey] extends UseQueryOptionsForUseSuspenseQueries ? unknown extends TData ? TQueryFnData : TData : never; }, { [TKey in keyof TQueriesOptions]: TQueriesOptions[TKey] extends UseQueryOptionsForUseSuspenseQueries ? UseSuspenseQueryResult : never; } ];