import type { ReadonlyJSONValue } from '../../../shared/src/json.ts'; import type { Schema } from '../../../zero-schema/src/builder/schema-builder.ts'; import type { SchemaQuery } from '../mutate/custom.ts'; import type { Query } from './query.ts'; export type QueryFn> = TTakesContext extends false ? { (...args: TArg): TReturnQuery; } : { (context: TContext, ...args: TArg): TReturnQuery; }; export type SyncedQuery> = QueryFn & { queryName: TName; parse: ParseFn | undefined; takesContext: TTakesContext; }; export declare function syncedQuery>(name: TName, parser: ParseFn | HasParseFn | undefined, fn: QueryFn): SyncedQuery; export declare function syncedQueryWithContext>(name: TName, parser: ParseFn | HasParseFn | undefined, fn: QueryFn): SyncedQuery; export declare function withValidation>(fn: T): T extends SyncedQuery ? SyncedQuery : never; export type ParseFn = (args: unknown[]) => T; export type HasParseFn = { parse: ParseFn; }; export type Parser = ParseFn | HasParseFn; export type CustomQueryID = { name: string; args: ReadonlyArray; }; /** * Returns a set of query builders for the given schema. */ export declare function createBuilder(s: S): SchemaQuery; //# sourceMappingURL=named.d.ts.map