/* tslint:disable */ /* eslint-disable */ export type ValueTypes = { ["NotMutation"]: AliasType<{ add?: [{ name?:string},ValueTypes["Person"]] __typename?: true }>; ["NotSubscription"]: AliasType<{ people?:ValueTypes["Person"] __typename?: true }>; ["Person"]: AliasType<{ name?:true __typename?: true }>; ["Query"]: AliasType<{ people?:ValueTypes["Person"] __typename?: true }> } export type PartialObjects = { ["NotMutation"]: { __typename?: "NotMutation"; add?:PartialObjects["Person"] }, ["NotSubscription"]: { __typename?: "NotSubscription"; people?:(PartialObjects["Person"] | undefined)[] }, ["Person"]: { __typename?: "Person"; name?:string }, ["Query"]: { __typename?: "Query"; people?:(PartialObjects["Person"] | undefined)[] } } export type NotMutation = { __typename?: "NotMutation", add?:Person } export type NotSubscription = { __typename?: "NotSubscription", people?:(Person | undefined)[] } export type Person = { __typename?: "Person", name?:string } export type Query = { __typename?: "Query", people?:(Person | undefined)[] } type Func

= (...args: P) => R; type AnyFunc = Func; type WithTypeNameValue = T & { __typename?: true; }; type AliasType = WithTypeNameValue & { __alias?: Record>; }; type NotUndefined = T extends undefined ? never : T; export type ResolverType = NotUndefined; export type ArgsType = F extends Func ? P : never; interface GraphQLResponse { data?: Record; errors?: Array<{ message: string; }>; } export type ValuesOf = T[keyof T]; export type MapResolve = SRC extends { __interface: infer INTERFACE; __resolve: Record & infer IMPLEMENTORS; } ? ValuesOf<{ [k in (keyof SRC['__resolve'] & keyof DST)]: ({ [rk in (keyof SRC['__resolve'][k] & keyof DST[k])]: LastMapTypeSRCResolver } & { __typename?: SRC['__resolve'][k]['__typename'] }) }> : never; export type MapInterface = SRC extends { __interface: infer INTERFACE; __resolve: Record & infer IMPLEMENTORS; } ? (MapResolve extends never ? {} : MapResolve) & { [k in (keyof SRC['__interface'] & keyof DST)]: LastMapTypeSRCResolver } : never; export type ValueToUnion = T extends { __typename: infer R; } ? { [P in keyof Omit]: T[P] & { __typename: R; }; } : T; export type ObjectToUnion = { [P in keyof T]: T[P]; }[keyof T]; type Anify = { [P in keyof T]?: any }; type LastMapTypeSRCResolver = SRC extends undefined ? undefined : SRC extends Array ? LastMapTypeSRCResolver[] : SRC extends { __interface: any; __resolve: any } ? MapInterface : SRC extends { __union: any; __resolve: infer RESOLVE } ? ObjectToUnion>> : DST extends boolean ? SRC : MapType; export type MapType, DST> = DST extends boolean ? SRC : DST extends { __alias: any; } ? { [A in keyof DST["__alias"]]: Required extends Anify< DST["__alias"][A] > ? MapType, DST["__alias"][A]> : never; } & { [Key in keyof Omit]: DST[Key] extends [ any, infer PAYLOAD ] ? LastMapTypeSRCResolver : LastMapTypeSRCResolver; } : { [Key in keyof DST]: DST[Key] extends [any, infer PAYLOAD] ? LastMapTypeSRCResolver : LastMapTypeSRCResolver; }; type OperationToGraphQL = (o: Z | V, variables?: Record) => Promise>; type CastToGraphQL = ( resultOfYourQuery: any ) => (o: Z | V) => MapType; type fetchOptions = ArgsType; export type SelectionFunction = (t: T | V) => T; type FetchFunction = (query: string, variables?: Record) => any; export declare function Thunder( fn: FetchFunction ):{ query: OperationToGraphQL,mutation: OperationToGraphQL,subscription: OperationToGraphQL } export declare function Chain( ...options: fetchOptions ):{ query: OperationToGraphQL,mutation: OperationToGraphQL,subscription: OperationToGraphQL } export declare const Zeus: { query: (o: ValueTypes["Query"]) => string,mutation: (o: ValueTypes["NotMutation"]) => string,subscription: (o: ValueTypes["NotSubscription"]) => string } export declare const Cast: { query: CastToGraphQL< ValueTypes["Query"], Query >,mutation: CastToGraphQL< ValueTypes["NotMutation"], NotMutation >,subscription: CastToGraphQL< ValueTypes["NotSubscription"], NotSubscription > } export declare const Selectors: { query: SelectionFunction,mutation: SelectionFunction,subscription: SelectionFunction } export declare const Gql: ReturnType