import { ResultItem } from "../../types/result-types"; import { ExtractConditionalByTypeProjectionResults, ConditionalByTypeProjectionMap, ConditionalConfig } from "./conditional-types"; import { ExtractDocumentTypes } from "../../types/document-types"; declare module "../../groq-builder" { interface GroqBuilderSubquery { /** * Creates an inline conditional projection, based on the `_type` field. * * This is similar to `.conditional`, * but provides stronger types and auto-completion. * * @example * q.star.filterByType("product", "category").project(sub => ({ * name: z.string(), * ...sub.conditionalByType({ * product: { * price: z.number(), * }, * category: { * title: z.string(), * }, * }), * })) */ conditionalByType, TQueryConfig>, TKey extends string = typeof DEFAULT_KEY, /** * Did we supply a condition for all possible _type values? */ TIsExhaustive extends boolean = ExtractDocumentTypes> extends keyof TConditionalProjections ? true : false>(conditionalProjections: TConditionalProjections, config?: Partial>): ExtractConditionalByTypeProjectionResults, TQueryConfig, TConditionalProjections, ConditionalConfig>; } } declare const DEFAULT_KEY: "[BY_TYPE]"; export {};