/* 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