import { ExtractDocumentTypes } from "../types/schema-types"; import { ResultItem } from "../types/result-types"; import { ExtractConditionalByTypeProjectionResults, ConditionalByTypeProjectionMap, ConditionalConfig } from "./conditional-types"; declare module "../groq-builder" { interface GroqBuilder { /** * 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: q.string(), * ...sub.conditionalByType({ * product: { * price: q.number(), * }, * category: { * title: q.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, TConditionalProjections, ConditionalConfig>; } } declare const DEFAULT_KEY: "[BY_TYPE]"; export {};