/** * Query options factory for TanStack Query integration. * Creates type-safe query options from Eden route definitions. */ import type { DataTag, DefinedInitialDataOptions, SkipToken, UndefinedInitialDataOptions, UnusedSkipTokenOptions } from "@tanstack/react-query"; import type { EdenQueryKey } from "../keys/types"; /** Reserved options that are set by the library */ type ReservedOptions = "queryKey" | "queryFn" | "queryHashFn" | "queryHash"; /** Base options for Eden requests */ interface EdenQueryBaseOptions { eden?: { /** Abort request on component unmount */ abortOnUnmount?: boolean; }; } /** Result metadata added to query options */ export interface EdenQueryOptionsResult { eden: { path: string; }; } /** * Arguments for creating query options. */ export interface EdenQueryOptionsArgs { /** Path segments (e.g., ['api', 'users', 'get']) */ path: string[]; /** Input parameters or skipToken */ input: TInput | SkipToken; /** Function to fetch data */ fetch: (input: TInput, signal?: AbortSignal) => Promise; } interface UndefinedEdenQueryOptionsIn extends Omit, ReservedOptions>, EdenQueryBaseOptions { } interface DefinedEdenQueryOptionsIn extends Omit, TError, TData, EdenQueryKey>, ReservedOptions>, EdenQueryBaseOptions { } interface UnusedSkipTokenEdenQueryOptionsIn extends Omit, ReservedOptions>, EdenQueryBaseOptions { } interface UndefinedEdenQueryOptionsOut extends UndefinedInitialDataOptions, EdenQueryOptionsResult { queryKey: DataTag; } interface DefinedEdenQueryOptionsOut extends DefinedInitialDataOptions, EdenQueryOptionsResult { queryKey: DataTag; } interface UnusedSkipTokenEdenQueryOptionsOut extends UnusedSkipTokenOptions, EdenQueryOptionsResult { queryKey: DataTag; } /** * Create query options with defined initial data. * The returned data will never be undefined. */ export declare function edenQueryOptions(args: EdenQueryOptionsArgs & { opts: DefinedEdenQueryOptionsIn; }): DefinedEdenQueryOptionsOut; /** * Create query options without skipToken. * The returned data can be undefined until loaded. */ export declare function edenQueryOptions(args: EdenQueryOptionsArgs & { input: TInput; opts?: UnusedSkipTokenEdenQueryOptionsIn; }): UnusedSkipTokenEdenQueryOptionsOut; /** * Create query options with skipToken support. * Use skipToken to conditionally disable the query. */ export declare function edenQueryOptions(args: EdenQueryOptionsArgs & { opts?: UndefinedEdenQueryOptionsIn; }): UndefinedEdenQueryOptionsOut; export {}; //# sourceMappingURL=queryOptions.d.ts.map