import { ListenEvent as ListenEvent$1, MutationEvent as MutationEvent$1, Mutation as Mutation$1, MutationSelection, PatchOperations as PatchOperations$1, ClientConfig, InitializedClientConfig, BaseMutationOptions, MultipleMutationResult, SingleMutationResult, SanityAssetDocument, FilteredResponseQueryOptions, UnfilteredResponseQueryOptions, RawQueryResponse as RawQueryResponse$1, SanityClient as SanityClient$1, QueryParams, ListenOptions, BasePatch, Transaction as Transaction$1, PatchSelection, ObservableSanityClient as ObservableSanityClient$1 } from '@sanity/client'; import { GroqBuilder } from 'groq-builder'; import { Observable } from 'rxjs'; import { Merge, Except, SetOptional, IsNever, WritableDeep } from 'type-fest'; import { ExecuteQuery, RootScope } from '@sanity-typed/groq'; import { referenced, DocumentValues } from '@sanity-typed/types'; import { AnySanityDocument } from '@sanity-typed/types/src/internal'; type MergeOld = Except> & SecondType; declare const README: unique symbol; type PromiseOrObservable = TIsPromise extends true ? Promise : Observable; type MutationResult = TOptions extends { returnDocuments: false; returnFirst: false; } ? MultipleMutationResult : TOptions extends { returnFirst: false; } ? Value extends any[] ? Value : Value[] : TOptions extends { returnDocuments: false; } ? SingleMutationResult : Value extends any[] ? Value[0] : Value; type PatchOperations, TKeys extends TDocument extends never ? never : (keyof TDocument)[]> = MergeOld; type PatchMutationOperation, TKeys extends TDocument extends never ? never : (keyof TDocument)[]> = MutationSelection & PatchOperations; type PatchType = MergeOld) => PatchType; clone: () => PatchType; commit: TIsScoped extends false ? never : (options?: TOptions) => PromiseOrObservable>; dec: & { [key: string]: number; } : any>(attrs: TAttrs) => PatchType> : TAttrs & TDocument, TOriginalDocument, TIsPromise, TIsScoped>; diffMatchPatch: & { [key: string]: string; } : any>(attrs: TAttrs) => PatchType> : TAttrs & TDocument, TOriginalDocument, TIsPromise, TIsScoped>; ifRevisionId: (...args: Parameters) => PatchType; inc: & { [key: string]: number; } : any>(attrs: TAttrs) => PatchType> : TAttrs & TDocument, TOriginalDocument, TIsPromise, TIsScoped>; insert: (...args: Parameters) => PatchType; prepend: (...args: Parameters) => PatchType; reset: (...args: Parameters) => PatchType; serialize: () => PatchMutationOperation, TDocument extends never ? never : (keyof TDocument)[]>; set: : any>(attrs: TAttrs) => PatchType> : TAttrs & TDocument, TOriginalDocument, TIsPromise, TIsScoped>; setIfMissing: : any>(attrs: TAttrs) => PatchType> : TAttrs & TDocument, TOriginalDocument, TIsPromise, TIsScoped>; splice: (...args: Parameters) => PatchType; toJSON: () => PatchMutationOperation, TDocument extends never ? never : (keyof TDocument)[]>; unset: (keys: TKeys) => PatchType; }>; declare const Patch: new , const TKeys extends TDocument extends never ? never : (keyof TDocument)[], const TClient extends SanityClient | undefined = undefined>(idOrSelection: PatchSelection, operations?: PatchOperations, client?: TClient) => PatchType> & (TDocument extends never ? never : TKeys extends never ? never : TKeys[number] extends keyof TDocument ? TDocument : never), TDocument, true, undefined extends TClient ? false : true>; declare const ObservablePatch: new , const TKeys extends TDocument extends never ? never : (keyof TDocument)[], const TClient extends SanityClient | undefined = undefined>(idOrSelection: PatchSelection, operations?: PatchOperations, client?: TClient) => PatchType> & (TDocument extends never ? never : TKeys extends never ? never : TKeys[number] extends keyof TDocument ? TDocument : never), TDocument, false, undefined extends TClient ? false : true>; type TransactionType = MergeOld(options?: TOptions) => PromiseOrObservable>; create: , "_createdAt" | "_rev" | "_updatedAt"> & { _type: string; }>(document: Doc) => TransactionType<[ ...TDocuments, TIsScoped extends true ? Extract : Doc & TOriginalDocument ], TOriginalDocument, TIsPromise, TIsScoped>; createIfNotExists: & { _type: string; }>(document: Doc) => TransactionType<[ ...TDocuments, TIsScoped extends true ? Extract : Doc & TOriginalDocument ], TOriginalDocument, TIsPromise, TIsScoped>; createOrReplace: & { _type: string; }>(document: Doc) => TransactionType<[ ...TDocuments, TIsScoped extends true ? Extract : Doc & TOriginalDocument ], TOriginalDocument, TIsPromise, TIsScoped>; delete: (idOrSelection: MutationSelection | string) => TransactionType<[ ...TDocuments, SanityAssetDocument | TOriginalDocument ], TOriginalDocument, TIsPromise, TIsScoped>; patch: (...args: [ documentId: string, patchOps?: PatchOperations$1 | ((patch: PatchType) => PatchType) ] | [patch: PatchType]) => TransactionType<[ ...TDocuments, Doc ], TOriginalDocument, TIsPromise, TIsScoped>; reset: (...args: Parameters) => TransactionType<[], TOriginalDocument, TIsPromise, TIsScoped>; }>; type Mutation & { _type: string; }> = Exclude | { patch: PatchMutationOperation, TDocument extends never ? never : (keyof TDocument)[]>; } | { create: SetOptional; } | { createIfNotExists: Doc & { _id: string; }; } | { createOrReplace: Doc & { _id: string; }; }; type MutationDoc> = TMutation extends { create: infer Doc; } ? Extract : TMutation extends { createOrReplace: infer Doc; } ? Extract : TMutation extends { createIfNotExists: infer Doc; } ? Extract : TMutation extends { delete: any; } ? SanityAssetDocument | TDocument : never; declare const Transaction: new | undefined = undefined>(operations?: Mutation[], client?: TClient, transactionId?: string) => TransactionType<[], AnySanityDocument, true, undefined extends TClient ? false : true>; declare const ObservableTransaction: new | undefined = undefined>(operations?: Mutation[], client?: TClient, transactionId?: string) => TransactionType<[], AnySanityDocument, false, undefined extends TClient ? false : true>; type MutationEvent = Merge; type ListenEvent = Exclude, MutationEvent$1> | MutationEvent; type RawQueryResponse = Merge, { query: Query; }>; type MaybeRawQueryResponse = Options extends UnfilteredResponseQueryOptions ? RawQueryResponse : Result; type GetDocuments = { [index in keyof Ids]: (TDocument & { _id: Ids[index]; }) | null; }; type OverrideSanityClient = MergeOld OverrideSanityClient; config: | undefined = undefined>(newConfig?: NewConfig) => NewConfig extends undefined ? InitializedClientConfig : OverrideSanityClient, TDocument, TObservableClient, TIsPromise>; create: , "_createdAt" | "_rev" | "_updatedAt">, const TOptions extends BaseMutationOptions = BaseMutationOptions>(document: Doc, options?: TOptions) => PromiseOrObservable, TOptions>>; createIfNotExists: , const TOptions extends BaseMutationOptions = BaseMutationOptions>(document: Doc, options?: TOptions) => PromiseOrObservable, TOptions>>; createOrReplace: , const TOptions extends BaseMutationOptions = BaseMutationOptions>(document: Doc, options?: TOptions) => PromiseOrObservable, TOptions>>; delete: (idOrSelection: MutationSelection | string, options?: TOptions) => PromiseOrObservable>; fetch: (query: TQuery | ((q: GroqBuilder<{ [key in never]: never; }, { documentTypes: TDocument; referenceSymbol: typeof referenced; }>) => GroqBuilder), params?: TQueryParams, options?: TOptions) => PromiseOrObservable extends true ? ExecuteQuery; dataset: (TDocument extends never ? never : TDocument)[]; delta: { after: null; before: null; }; identity: string; parameters: NonNullable; }>> : TResult, TQuery, TOptions>>; getDocument: (id: TId, options?: Parameters[1]) => PromiseOrObservable; getDocuments: (ids: TIds, options?: Parameters[1]) => PromiseOrObservable>>; listen: (query: TQuery, params?: TQueryParams, options?: TOptions) => Observable; dataset: (TDocument extends never ? never : TDocument)[]; delta: { after: null; before: null; }; identity: string; parameters: NonNullable; }>> extends (infer Doc extends TDocument)[] ? Doc : never> : ListenEvent; dataset: (TDocument extends never ? never : TDocument)[]; delta: { after: null; before: null; }; identity: string; parameters: NonNullable; }>> extends (infer Doc extends TDocument)[] ? Doc : never>>; mutate: (operations: Mutation & { _type: string; }> | Mutation & { _type: string; }>[] | PatchType | TransactionType<[ Doc, ...any[] ], AnySanityDocument, TIsPromise, false>, options?: TOptions) => PromiseOrObservable>>, TOptions>>; observable: TObservableClient; patch: , TKeys extends TDocument extends never ? never : (keyof TDocument)[]>(idOrSelection: PatchSelection, operations?: PatchOperations) => PatchType> & (TDocument extends never ? never : TKeys extends never ? never : TKeys[number] extends keyof TDocument ? TDocument : never), TDocument, TIsPromise, true>; transaction: & { _type: string; }>[] = []>(operations?: TMutations) => TransactionType; }, TDocument, TIsPromise, true>; withConfig: >(newConfig?: NewConfig) => OverrideSanityClient, TDocument, TObservableClient, TIsPromise>; }>; type ObservableSanityClient = OverrideSanityClient; type SanityClient = OverrideSanityClient, true>; declare const createClient: (config: ClientConfig) => SanityClient>; declare const castToTyped: (...args: IsNever extends false ? [] : [error: { [README]: "\u26D4\uFE0F Without providing a SanityValues, castToTyped is meaningless. eg. castToTyped()(untypedClient) \u26D4\uFE0F"; }]) => (untyped: TClient) => SanityClient>; export { type GetDocuments, type ListenEvent, type Mutation, type MutationDoc, type MutationEvent, ObservablePatch, type ObservableSanityClient, ObservableTransaction, type OverrideSanityClient, Patch, type PatchMutationOperation, type PatchOperations, type PatchType, type RawQueryResponse, type SanityClient, Transaction, type TransactionType, castToTyped, createClient };