/* tslint:disable */ /* eslint-disable */ export type ValueTypes = { /** Card used in card game
*/ ["Card"]: AliasType<{ /** The attack power
*/ Attack?:true, /**
How many children the greek god had
*/ Children?:true, /** The defense power
*/ Defense?:true, attack?: [{ /** Attacked card/card ids
*/ cardID:string[]},ValueTypes["Card"]], /** Put your description here */ cardImage?:ValueTypes["S3Object"], /** Description of a card
*/ description?:true, id?:true, image?:true, /** The name of a card
*/ name?:true, skills?:true __typename?: true }>; /** Stack of cards */ ["CardStack"]: AliasType<{ cards?:ValueTypes["Card"], name?:true __typename?: true }>; ["ChangeCard"]: AliasType<{ ["...on SpecialCard"] : ValueTypes["SpecialCard"], ["...on EffectCard"] : ValueTypes["EffectCard"] __typename?: true }>; /** create card inputs
*/ ["createCard"]: { /** input skills */ skills?:ValueTypes["SpecialSkills"][], /** The name of a card
*/ name:string, /** Description of a card
*/ description:string, /**
How many children the greek god had
*/ Children?:number, /** The attack power
*/ Attack:number, /** The defense power
*/ Defense:number }; ["EffectCard"]: AliasType<{ effectSize?:true, name?:true __typename?: true }>; ["Mutation"]: AliasType<{ addCard?: [{ card:ValueTypes["createCard"]},ValueTypes["Card"]] __typename?: true }>; ["Nameable"]:AliasType<{ name?:true; ['...on Card']: ValueTypes["Card"]; ['...on CardStack']: ValueTypes["CardStack"]; ['...on EffectCard']: ValueTypes["EffectCard"]; ['...on SpecialCard']: ValueTypes["SpecialCard"]; __typename?: true }>; ["Query"]: AliasType<{ cardById?: [{ cardId?:string},ValueTypes["Card"]], /** Draw a card
*/ drawCard?:ValueTypes["Card"], drawChangeCard?:ValueTypes["ChangeCard"], /** list All Cards availble
*/ listCards?:ValueTypes["Card"], myStacks?:ValueTypes["CardStack"], nameables?:ValueTypes["Nameable"] __typename?: true }>; /** Aws S3 File */ ["S3Object"]: AliasType<{ bucket?:true, key?:true, region?:true __typename?: true }>; ["SpecialCard"]: AliasType<{ effect?:true, name?:true __typename?: true }>; ["SpecialSkills"]:SpecialSkills } export type PartialObjects = { /** Card used in card game
*/ ["Card"]: { __typename?: "Card"; /** The attack power
*/ Attack?:number, /**
How many children the greek god had
*/ Children?:number, /** The defense power
*/ Defense?:number, /** Attack other cards on the table , returns Cards after attack
*/ attack?:PartialObjects["Card"][], /** Put your description here */ cardImage?:PartialObjects["S3Object"], /** Description of a card
*/ description?:string, id?:string, image?:string, /** The name of a card
*/ name?:string, skills?:PartialObjects["SpecialSkills"][] }, /** Stack of cards */ ["CardStack"]: { __typename?: "CardStack"; cards?:PartialObjects["Card"][], name?:string }, ["ChangeCard"]: PartialObjects["SpecialCard"] | PartialObjects["EffectCard"], /** create card inputs
*/ ["createCard"]: { /** input skills */ skills?:PartialObjects["SpecialSkills"][], /** The name of a card
*/ name:string, /** Description of a card
*/ description:string, /**
How many children the greek god had
*/ Children?:number, /** The attack power
*/ Attack:number, /** The defense power
*/ Defense:number }, ["EffectCard"]: { __typename?: "EffectCard"; effectSize?:number, name?:string }, ["Mutation"]: { __typename?: "Mutation"; /** add Card to Cards database
*/ addCard?:PartialObjects["Card"] }, ["Nameable"]:{ name?:string } & (PartialObjects["Card"] | PartialObjects["CardStack"] | PartialObjects["EffectCard"] | PartialObjects["SpecialCard"]), ["Query"]: { __typename?: "Query"; cardById?:PartialObjects["Card"], /** Draw a card
*/ drawCard?:PartialObjects["Card"], drawChangeCard?:PartialObjects["ChangeCard"], /** list All Cards availble
*/ listCards?:PartialObjects["Card"][], myStacks?:PartialObjects["CardStack"][], nameables?:PartialObjects["Nameable"][] }, /** Aws S3 File */ ["S3Object"]: { __typename?: "S3Object"; bucket?:string, key?:string, region?:string }, ["SpecialCard"]: { __typename?: "SpecialCard"; effect?:string, name?:string }, ["SpecialSkills"]:SpecialSkills } /** Card used in card game
*/ export type Card = { __typename?: "Card", /** The attack power
*/ Attack:number, /**
How many children the greek god had
*/ Children?:number, /** The defense power
*/ Defense:number, /** Attack other cards on the table , returns Cards after attack
*/ attack?:Card[], /** Put your description here */ cardImage?:S3Object, /** Description of a card
*/ description:string, id:string, image:string, /** The name of a card
*/ name:string, skills?:SpecialSkills[] } /** Stack of cards */ export type CardStack = { __typename?: "CardStack", cards?:Card[], name:string } export type ChangeCard = { __union:SpecialCard | EffectCard; __resolve:{ ['...on SpecialCard']: SpecialCard; ['...on EffectCard']: EffectCard; } } /** create card inputs
*/ export type createCard = { /** input skills */ skills?:SpecialSkills[], /** The name of a card
*/ name:string, /** Description of a card
*/ description:string, /**
How many children the greek god had
*/ Children?:number, /** The attack power
*/ Attack:number, /** The defense power
*/ Defense:number } export type EffectCard = { __typename?: "EffectCard", effectSize:number, name:string } export type Mutation = { __typename?: "Mutation", /** add Card to Cards database
*/ addCard:Card } export type Nameable = { __interface:{ name:string }; __resolve:{ ['...on Card']: Card; ['...on CardStack']: CardStack; ['...on EffectCard']: EffectCard; ['...on SpecialCard']: SpecialCard; } } export type Query = { __typename?: "Query", cardById?:Card, /** Draw a card
*/ drawCard:Card, drawChangeCard:ChangeCard, /** list All Cards availble
*/ listCards:Card[], myStacks?:CardStack[], nameables:Nameable[] } /** Aws S3 File */ export type S3Object = { __typename?: "S3Object", bucket:string, key:string, region:string } export type SpecialCard = { __typename?: "SpecialCard", effect:string, name:string } export enum SpecialSkills { THUNDER = "THUNDER", RAIN = "RAIN", FIRE = "FIRE" } 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 } export declare function Chain( ...options: fetchOptions ):{ query: OperationToGraphQL,mutation: OperationToGraphQL } export declare const Zeus: { query: (o: ValueTypes["Query"]) => string,mutation: (o: ValueTypes["Mutation"]) => string } export declare const Cast: { query: CastToGraphQL< ValueTypes["Query"], Query >,mutation: CastToGraphQL< ValueTypes["Mutation"], Mutation > } export declare const Selectors: { query: SelectionFunction,mutation: SelectionFunction } export declare const Gql: ReturnType