export declare type OutputTypeNotNull = { type: 'notNull'; inner: OutputType; }; export declare type OutputTypeList = { type: 'list'; inner: OutputType; }; export declare type OutputTypeScalar = { type: 'scalar'; name: String; }; export declare type OutputTypeObject = { type: 'object'; selectors: Selector[]; }; export declare type OutputType = OutputTypeNotNull | OutputTypeList | OutputTypeScalar | OutputTypeObject; export declare type InputValueString = { type: 'string'; str: string; }; export declare type InputValueInt = { type: 'int'; int: number; }; export declare type InputValueFloat = { type: 'float'; float: number; }; export declare type InputValueBoolean = { type: 'boolean'; bool: boolean; }; export declare type InputValueNull = { type: 'null'; }; export declare type InputValueList = { type: 'list'; items: InputValue[]; }; export declare type InputValueObject = { type: 'object'; fields: { [key: string]: InputValue; }; }; export declare type InputValueReference = { type: 'reference'; name: string; }; export declare type InputValue = InputValueString | InputValueInt | InputValueFloat | InputValueBoolean | InputValueNull | InputValueList | InputValueObject | InputValueReference; export declare type SelectorField = { type: 'field'; name: string; alias: string; fieldType: OutputType; arguments: { [key: string]: InputValue; }; }; export declare type SelectorFragment = { type: 'fragment'; name: string; }; export declare type SelectorTypeCondition = { type: 'type-condition'; name: string; fragmentType: OutputTypeObject; }; export declare type Selector = SelectorField | SelectorFragment | SelectorTypeCondition; export declare function list(src: OutputType): OutputTypeList; export declare function notNull(src: OutputType): OutputTypeNotNull; export declare function scalar(name: string): OutputTypeScalar; export declare function obj(...selectors: Selector[]): OutputTypeObject; export declare function field(name: string, alias: string, arg: { [key: string]: InputValue; }, type: OutputType): SelectorField; export declare function inline(name: string, inner: OutputTypeObject): SelectorTypeCondition; export declare function fragment(name: string): SelectorFragment; export declare function args(...fieldArgs: { name: string; value: InputValue; }[]): { [key: string]: InputValue; }; export declare function fieldValue(name: string, value: InputValue): { name: string; value: InputValue; }; export declare function refValue(name: string): InputValueReference; export declare function intValue(int: number): InputValueInt; export declare function floatValue(float: number): InputValueFloat; export declare function stringValue(str: string): InputValueString; export declare function boolValue(bool: boolean): InputValueBoolean; export declare function listValue(...items: InputValue[]): InputValueList; export declare function objectValue(...fields: { name: string; value: InputValue; }[]): InputValueObject; export declare function nullValue(): InputValueNull; export interface OperationDefinition { name: string; body: string; kind: 'query' | 'mutation' | 'subscription'; selector: OutputTypeObject; } export interface FragmentDefinition { name: string; selector: OutputTypeObject; } export declare type Definitions = { operations: { [key: string]: OperationDefinition; }; fragments: { [key: string]: FragmentDefinition; }; };