import type { EvaluateConfig, InputTypeConfig, OutputTypeConfig } from './config'; import type { Resolver, Subscription } from './Resolver'; import type { AnyField, GQLInputObject, GQLObject, GQLScalar, GQLUnion, InputRecord } from './types'; import type { _Root, TypeofInputRecord } from './util'; import type { Integer } from '@principia/base/Integer'; import type { _A, _E, _R } from '@principia/base/util/types'; import { GQLField, GQLInputField, GQLObjectField, GQLScalarField, GQLSubscriptionField, GQLUnionField } from './types'; export declare const GqlFieldURI = "graphql/algebra/field"; export declare type GqlFieldURI = typeof GqlFieldURI; export declare const GqlInputURI = "graphql/algebra/input"; export declare type GqlInputURI = typeof GqlInputURI; declare module './HKT' { interface AURItoFieldAlgebra { readonly [GqlFieldURI]: GQLFieldAlgebra; } interface AURItoInputAlgebra { readonly [GqlInputURI]: GQLInputAlgebra; } } export interface GQLFieldAlgebra { readonly boolean: (config?: C) => GQLScalarField>; readonly field: , Args extends InputRecord, R, E>(def: { type: F; resolve: Resolver, Ctx, R, E, _A>; args?: Args; }) => GQLField, Ctx, R, E, _A>; readonly float: (config?: C) => GQLScalarField>; readonly id: (config?: C) => GQLScalarField>; readonly int: (config?: C) => GQLScalarField>; readonly string: (config?: C) => GQLScalarField>; readonly union: , C extends OutputTypeConfig>(type: () => U, config?: C) => GQLUnionField>>; readonly object: , C extends OutputTypeConfig>(type: () => O, config?: C) => GQLObjectField<_Root, Ctx, _R, _E, EvaluateConfig>>; readonly scalar: , C extends OutputTypeConfig>(scalar: () => S, config?: C) => GQLScalarField>>; } export interface GQLInputAlgebra { readonly booleanArg: >>(config?: C) => GQLInputField>; readonly floatArg: >>(config?: C) => GQLInputField>; readonly idArg: >>(config?: C) => GQLInputField>; readonly intArg: >>(config?: C) => GQLInputField>; readonly objectArg: , C extends InputTypeConfig>>>(type: () => X, config?: C) => GQLInputField>>; readonly stringArg: >>(config?: C) => GQLInputField>; readonly scalarArg: , C extends InputTypeConfig>>>(scalar: () => X, config?: C) => GQLInputField>>; } export interface GQLSubscriptionAlgebra { readonly subscription: , Args extends InputRecord, SR, SE, SA, RR, RE>(def: { type: F; resolve: Subscription<{}, TypeofInputRecord, SR, SE, SA, RR, RE, _A>; args?: Args; }) => GQLSubscriptionField>; } export declare const GqlSubscriptionInterpreter: (a: void) => GQLSubscriptionAlgebra; export declare const GQLFieldInterpreter: (a: void) => GQLFieldAlgebra; export declare const GQLInputInterpreter: (a: void) => GQLInputAlgebra; export declare const DefaultGQLInterpreters: { subscription: , Args extends InputRecord, SR, SE, SA, RR, RE>(def: { type: F; resolve: Subscription<{}, { [k_1 in { [K in keyof { [k in keyof Args]: Args[k]["config"]["nullable"] extends true ? k : never; }]-?: { [k in keyof Args]: Args[k]["config"]["nullable"] extends true ? k : never; }[K] extends never ? never : K; }[keyof Args]]?: _A | undefined; } & { [k_2 in Exclude]: _A; } extends Function | RegExp | Error | Date | { readonly [Symbol.toStringTag]: string; } | Generator ? (Function | RegExp | Error | Date | { readonly [Symbol.toStringTag]: string; } | Generator) & { [k_1 in { [K in keyof { [k in keyof Args]: Args[k]["config"]["nullable"] extends true ? k : never; }]-?: { [k in keyof Args]: Args[k]["config"]["nullable"] extends true ? k : never; }[K] extends never ? never : K; }[keyof Args]]?: _A | undefined; } & { [k_2 in Exclude]: _A; } : { [k_1 in { [K in keyof { [k in keyof Args]: Args[k]["config"]["nullable"] extends true ? k : never; }]-?: { [k in keyof Args]: Args[k]["config"]["nullable"] extends true ? k : never; }[K] extends never ? never : K; }[keyof Args]]?: _A | undefined; } & { [k_2 in Exclude]: _A; } extends any[] ? any[] & { [k_1 in { [K in keyof { [k in keyof Args]: Args[k]["config"]["nullable"] extends true ? k : never; }]-?: { [k in keyof Args]: Args[k]["config"]["nullable"] extends true ? k : never; }[K] extends never ? never : K; }[keyof Args]]?: _A | undefined; } & { [k_2 in Exclude]: _A; } extends Record[] ? { [K_1 in keyof (Record[] & any[] & { [k_1 in { [K in keyof { [k in keyof Args]: Args[k]["config"]["nullable"] extends true ? k : never; }]-?: { [k in keyof Args]: Args[k]["config"]["nullable"] extends true ? k : never; }[K] extends never ? never : K; }[keyof Args]]?: _A | undefined; } & { [k_2 in Exclude]: _A; })[number]]: (Record[] & any[] & { [k_1 in { [K in keyof { [k in keyof Args]: Args[k]["config"]["nullable"] extends true ? k : never; }]-?: { [k in keyof Args]: Args[k]["config"]["nullable"] extends true ? k : never; }[K] extends never ? never : K; }[keyof Args]]?: _A | undefined; } & { [k_2 in Exclude]: _A; })[number][K_1]; }[] : any[] & { [k_1 in { [K in keyof { [k in keyof Args]: Args[k]["config"]["nullable"] extends true ? k : never; }]-?: { [k in keyof Args]: Args[k]["config"]["nullable"] extends true ? k : never; }[K] extends never ? never : K; }[keyof Args]]?: _A | undefined; } & { [k_2 in Exclude]: _A; } : { [k_1 in { [K in keyof { [k in keyof Args]: Args[k]["config"]["nullable"] extends true ? k : never; }]-?: { [k in keyof Args]: Args[k]["config"]["nullable"] extends true ? k : never; }[K] extends never ? never : K; }[keyof Args]]?: _A | undefined; } & { [k_2 in Exclude]: _A; } extends readonly any[] ? readonly any[] & { [k_1 in { [K in keyof { [k in keyof Args]: Args[k]["config"]["nullable"] extends true ? k : never; }]-?: { [k in keyof Args]: Args[k]["config"]["nullable"] extends true ? k : never; }[K] extends never ? never : K; }[keyof Args]]?: _A | undefined; } & { [k_2 in Exclude]: _A; } extends readonly Record[] ? readonly { [K_2 in keyof (readonly Record[] & readonly any[] & { [k_1 in { [K in keyof { [k in keyof Args]: Args[k]["config"]["nullable"] extends true ? k : never; }]-?: { [k in keyof Args]: Args[k]["config"]["nullable"] extends true ? k : never; }[K] extends never ? never : K; }[keyof Args]]?: _A | undefined; } & { [k_2 in Exclude]: _A; })[number]]: (readonly Record[] & readonly any[] & { [k_1 in { [K in keyof { [k in keyof Args]: Args[k]["config"]["nullable"] extends true ? k : never; }]-?: { [k in keyof Args]: Args[k]["config"]["nullable"] extends true ? k : never; }[K] extends never ? never : K; }[keyof Args]]?: _A | undefined; } & { [k_2 in Exclude]: _A; })[number][K_2]; }[] : readonly any[] & { [k_1 in { [K in keyof { [k in keyof Args]: Args[k]["config"]["nullable"] extends true ? k : never; }]-?: { [k in keyof Args]: Args[k]["config"]["nullable"] extends true ? k : never; }[K] extends never ? never : K; }[keyof Args]]?: _A | undefined; } & { [k_2 in Exclude]: _A; } : { [K_3 in keyof ({ [k_1 in { [K in keyof { [k in keyof Args]: Args[k]["config"]["nullable"] extends true ? k : never; }]-?: { [k in keyof Args]: Args[k]["config"]["nullable"] extends true ? k : never; }[K] extends never ? never : K; }[keyof Args]]?: _A | undefined; } & { [k_2 in Exclude]: _A; })]: ({ [k_1 in { [K in keyof { [k in keyof Args]: Args[k]["config"]["nullable"] extends true ? k : never; }]-?: { [k in keyof Args]: Args[k]["config"]["nullable"] extends true ? k : never; }[K] extends never ? never : K; }[keyof Args]]?: _A | undefined; } & { [k_2 in Exclude]: _A; })[K_3]; }, SR, SE, SA, RR, RE, _A>; args?: Args | undefined; }) => GQLSubscriptionField>; booleanArg: >>(config?: C | undefined) => GQLInputField>; floatArg: >>(config?: C_1 | undefined) => GQLInputField>; idArg: >>(config?: C_2 | undefined) => GQLInputField>; intArg: >>(config?: C_3 | undefined) => GQLInputField>; objectArg: , C_4 extends InputTypeConfig>>>(type: () => X, config?: C_4 | undefined) => GQLInputField>>; stringArg: >>(config?: C_5 | undefined) => GQLInputField>; scalarArg: , C_6 extends InputTypeConfig>>>(scalar: () => X_1, config?: C_6 | undefined) => GQLInputField>>; boolean: (config?: C_7 | undefined) => GQLScalarField>; field: , Args_1 extends InputRecord, R, E>(def: { type: F_1; resolve: Resolver | undefined; } & { [k_5 in Exclude]: _A; } extends Function | RegExp | Error | Date | { readonly [Symbol.toStringTag]: string; } | Generator ? (Function | RegExp | Error | Date | { readonly [Symbol.toStringTag]: string; } | Generator) & { [k_4 in { [K_4 in keyof { [k_3 in keyof Args_1]: Args_1[k_3]["config"]["nullable"] extends true ? k_3 : never; }]-?: { [k_3 in keyof Args_1]: Args_1[k_3]["config"]["nullable"] extends true ? k_3 : never; }[K_4] extends never ? never : K_4; }[keyof Args_1]]?: _A | undefined; } & { [k_5 in Exclude]: _A; } : { [k_4 in { [K_4 in keyof { [k_3 in keyof Args_1]: Args_1[k_3]["config"]["nullable"] extends true ? k_3 : never; }]-?: { [k_3 in keyof Args_1]: Args_1[k_3]["config"]["nullable"] extends true ? k_3 : never; }[K_4] extends never ? never : K_4; }[keyof Args_1]]?: _A | undefined; } & { [k_5 in Exclude]: _A; } extends any[] ? any[] & { [k_4 in { [K_4 in keyof { [k_3 in keyof Args_1]: Args_1[k_3]["config"]["nullable"] extends true ? k_3 : never; }]-?: { [k_3 in keyof Args_1]: Args_1[k_3]["config"]["nullable"] extends true ? k_3 : never; }[K_4] extends never ? never : K_4; }[keyof Args_1]]?: _A | undefined; } & { [k_5 in Exclude]: _A; } extends Record[] ? { [K_5 in keyof (Record[] & any[] & { [k_4 in { [K_4 in keyof { [k_3 in keyof Args_1]: Args_1[k_3]["config"]["nullable"] extends true ? k_3 : never; }]-?: { [k_3 in keyof Args_1]: Args_1[k_3]["config"]["nullable"] extends true ? k_3 : never; }[K_4] extends never ? never : K_4; }[keyof Args_1]]?: _A | undefined; } & { [k_5 in Exclude]: _A; })[number]]: (Record[] & any[] & { [k_4 in { [K_4 in keyof { [k_3 in keyof Args_1]: Args_1[k_3]["config"]["nullable"] extends true ? k_3 : never; }]-?: { [k_3 in keyof Args_1]: Args_1[k_3]["config"]["nullable"] extends true ? k_3 : never; }[K_4] extends never ? never : K_4; }[keyof Args_1]]?: _A | undefined; } & { [k_5 in Exclude]: _A; })[number][K_5]; }[] : any[] & { [k_4 in { [K_4 in keyof { [k_3 in keyof Args_1]: Args_1[k_3]["config"]["nullable"] extends true ? k_3 : never; }]-?: { [k_3 in keyof Args_1]: Args_1[k_3]["config"]["nullable"] extends true ? k_3 : never; }[K_4] extends never ? never : K_4; }[keyof Args_1]]?: _A | undefined; } & { [k_5 in Exclude]: _A; } : { [k_4 in { [K_4 in keyof { [k_3 in keyof Args_1]: Args_1[k_3]["config"]["nullable"] extends true ? k_3 : never; }]-?: { [k_3 in keyof Args_1]: Args_1[k_3]["config"]["nullable"] extends true ? k_3 : never; }[K_4] extends never ? never : K_4; }[keyof Args_1]]?: _A | undefined; } & { [k_5 in Exclude]: _A; } extends readonly any[] ? readonly any[] & { [k_4 in { [K_4 in keyof { [k_3 in keyof Args_1]: Args_1[k_3]["config"]["nullable"] extends true ? k_3 : never; }]-?: { [k_3 in keyof Args_1]: Args_1[k_3]["config"]["nullable"] extends true ? k_3 : never; }[K_4] extends never ? never : K_4; }[keyof Args_1]]?: _A | undefined; } & { [k_5 in Exclude]: _A; } extends readonly Record[] ? readonly { [K_6 in keyof (readonly Record[] & readonly any[] & { [k_4 in { [K_4 in keyof { [k_3 in keyof Args_1]: Args_1[k_3]["config"]["nullable"] extends true ? k_3 : never; }]-?: { [k_3 in keyof Args_1]: Args_1[k_3]["config"]["nullable"] extends true ? k_3 : never; }[K_4] extends never ? never : K_4; }[keyof Args_1]]?: _A | undefined; } & { [k_5 in Exclude]: _A; })[number]]: (readonly Record[] & readonly any[] & { [k_4 in { [K_4 in keyof { [k_3 in keyof Args_1]: Args_1[k_3]["config"]["nullable"] extends true ? k_3 : never; }]-?: { [k_3 in keyof Args_1]: Args_1[k_3]["config"]["nullable"] extends true ? k_3 : never; }[K_4] extends never ? never : K_4; }[keyof Args_1]]?: _A | undefined; } & { [k_5 in Exclude]: _A; })[number][K_6]; }[] : readonly any[] & { [k_4 in { [K_4 in keyof { [k_3 in keyof Args_1]: Args_1[k_3]["config"]["nullable"] extends true ? k_3 : never; }]-?: { [k_3 in keyof Args_1]: Args_1[k_3]["config"]["nullable"] extends true ? k_3 : never; }[K_4] extends never ? never : K_4; }[keyof Args_1]]?: _A | undefined; } & { [k_5 in Exclude]: _A; } : { [K_7 in keyof ({ [k_4 in { [K_4 in keyof { [k_3 in keyof Args_1]: Args_1[k_3]["config"]["nullable"] extends true ? k_3 : never; }]-?: { [k_3 in keyof Args_1]: Args_1[k_3]["config"]["nullable"] extends true ? k_3 : never; }[K_4] extends never ? never : K_4; }[keyof Args_1]]?: _A | undefined; } & { [k_5 in Exclude]: _A; })]: ({ [k_4 in { [K_4 in keyof { [k_3 in keyof Args_1]: Args_1[k_3]["config"]["nullable"] extends true ? k_3 : never; }]-?: { [k_3 in keyof Args_1]: Args_1[k_3]["config"]["nullable"] extends true ? k_3 : never; }[K_4] extends never ? never : K_4; }[keyof Args_1]]?: _A | undefined; } & { [k_5 in Exclude]: _A; })[K_7]; }, any, R, E, _A>; args?: Args_1 | undefined; }) => GQLField | undefined; } & { [k_5 in Exclude]: _A; } extends Function | RegExp | Error | Date | { readonly [Symbol.toStringTag]: string; } | Generator ? (Function | RegExp | Error | Date | { readonly [Symbol.toStringTag]: string; } | Generator) & { [k_4 in { [K_4 in keyof { [k_3 in keyof Args_1]: Args_1[k_3]["config"]["nullable"] extends true ? k_3 : never; }]-?: { [k_3 in keyof Args_1]: Args_1[k_3]["config"]["nullable"] extends true ? k_3 : never; }[K_4] extends never ? never : K_4; }[keyof Args_1]]?: _A | undefined; } & { [k_5 in Exclude]: _A; } : { [k_4 in { [K_4 in keyof { [k_3 in keyof Args_1]: Args_1[k_3]["config"]["nullable"] extends true ? k_3 : never; }]-?: { [k_3 in keyof Args_1]: Args_1[k_3]["config"]["nullable"] extends true ? k_3 : never; }[K_4] extends never ? never : K_4; }[keyof Args_1]]?: _A | undefined; } & { [k_5 in Exclude]: _A; } extends any[] ? any[] & { [k_4 in { [K_4 in keyof { [k_3 in keyof Args_1]: Args_1[k_3]["config"]["nullable"] extends true ? k_3 : never; }]-?: { [k_3 in keyof Args_1]: Args_1[k_3]["config"]["nullable"] extends true ? k_3 : never; }[K_4] extends never ? never : K_4; }[keyof Args_1]]?: _A | undefined; } & { [k_5 in Exclude]: _A; } extends Record[] ? { [K_5 in keyof (Record[] & any[] & { [k_4 in { [K_4 in keyof { [k_3 in keyof Args_1]: Args_1[k_3]["config"]["nullable"] extends true ? k_3 : never; }]-?: { [k_3 in keyof Args_1]: Args_1[k_3]["config"]["nullable"] extends true ? k_3 : never; }[K_4] extends never ? never : K_4; }[keyof Args_1]]?: _A | undefined; } & { [k_5 in Exclude]: _A; })[number]]: (Record[] & any[] & { [k_4 in { [K_4 in keyof { [k_3 in keyof Args_1]: Args_1[k_3]["config"]["nullable"] extends true ? k_3 : never; }]-?: { [k_3 in keyof Args_1]: Args_1[k_3]["config"]["nullable"] extends true ? k_3 : never; }[K_4] extends never ? never : K_4; }[keyof Args_1]]?: _A | undefined; } & { [k_5 in Exclude]: _A; })[number][K_5]; }[] : any[] & { [k_4 in { [K_4 in keyof { [k_3 in keyof Args_1]: Args_1[k_3]["config"]["nullable"] extends true ? k_3 : never; }]-?: { [k_3 in keyof Args_1]: Args_1[k_3]["config"]["nullable"] extends true ? k_3 : never; }[K_4] extends never ? never : K_4; }[keyof Args_1]]?: _A | undefined; } & { [k_5 in Exclude]: _A; } : { [k_4 in { [K_4 in keyof { [k_3 in keyof Args_1]: Args_1[k_3]["config"]["nullable"] extends true ? k_3 : never; }]-?: { [k_3 in keyof Args_1]: Args_1[k_3]["config"]["nullable"] extends true ? k_3 : never; }[K_4] extends never ? never : K_4; }[keyof Args_1]]?: _A | undefined; } & { [k_5 in Exclude]: _A; } extends readonly any[] ? readonly any[] & { [k_4 in { [K_4 in keyof { [k_3 in keyof Args_1]: Args_1[k_3]["config"]["nullable"] extends true ? k_3 : never; }]-?: { [k_3 in keyof Args_1]: Args_1[k_3]["config"]["nullable"] extends true ? k_3 : never; }[K_4] extends never ? never : K_4; }[keyof Args_1]]?: _A | undefined; } & { [k_5 in Exclude]: _A; } extends readonly Record[] ? readonly { [K_6 in keyof (readonly Record[] & readonly any[] & { [k_4 in { [K_4 in keyof { [k_3 in keyof Args_1]: Args_1[k_3]["config"]["nullable"] extends true ? k_3 : never; }]-?: { [k_3 in keyof Args_1]: Args_1[k_3]["config"]["nullable"] extends true ? k_3 : never; }[K_4] extends never ? never : K_4; }[keyof Args_1]]?: _A | undefined; } & { [k_5 in Exclude]: _A; })[number]]: (readonly Record[] & readonly any[] & { [k_4 in { [K_4 in keyof { [k_3 in keyof Args_1]: Args_1[k_3]["config"]["nullable"] extends true ? k_3 : never; }]-?: { [k_3 in keyof Args_1]: Args_1[k_3]["config"]["nullable"] extends true ? k_3 : never; }[K_4] extends never ? never : K_4; }[keyof Args_1]]?: _A | undefined; } & { [k_5 in Exclude]: _A; })[number][K_6]; }[] : readonly any[] & { [k_4 in { [K_4 in keyof { [k_3 in keyof Args_1]: Args_1[k_3]["config"]["nullable"] extends true ? k_3 : never; }]-?: { [k_3 in keyof Args_1]: Args_1[k_3]["config"]["nullable"] extends true ? k_3 : never; }[K_4] extends never ? never : K_4; }[keyof Args_1]]?: _A | undefined; } & { [k_5 in Exclude]: _A; } : { [K_7 in keyof ({ [k_4 in { [K_4 in keyof { [k_3 in keyof Args_1]: Args_1[k_3]["config"]["nullable"] extends true ? k_3 : never; }]-?: { [k_3 in keyof Args_1]: Args_1[k_3]["config"]["nullable"] extends true ? k_3 : never; }[K_4] extends never ? never : K_4; }[keyof Args_1]]?: _A | undefined; } & { [k_5 in Exclude]: _A; })]: ({ [k_4 in { [K_4 in keyof { [k_3 in keyof Args_1]: Args_1[k_3]["config"]["nullable"] extends true ? k_3 : never; }]-?: { [k_3 in keyof Args_1]: Args_1[k_3]["config"]["nullable"] extends true ? k_3 : never; }[K_4] extends never ? never : K_4; }[keyof Args_1]]?: _A | undefined; } & { [k_5 in Exclude]: _A; })[K_7]; }, any, R, E, _A>; float: (config?: C_8 | undefined) => GQLScalarField>; id: (config?: C_9 | undefined) => GQLScalarField>; int: (config?: C_10 | undefined) => GQLScalarField>; string: (config?: C_11 | undefined) => GQLScalarField>; union: , C_12 extends OutputTypeConfig>(type: () => U, config?: C_12 | undefined) => GQLUnionField>>; object: , C_13 extends OutputTypeConfig>(type: () => O, config?: C_13 | undefined) => GQLObjectField<_Root, any, _R, _E, EvaluateConfig>>; scalar: , C_14 extends OutputTypeConfig>(scalar: () => S, config?: C_14 | undefined) => GQLScalarField>>; }; //# sourceMappingURL=algebra.d.ts.map