import type { ExecutionResult } from 'graphql/execution';
import type { TypedQueryDocumentNode } from 'graphql/utilities';
import { parse } from 'graphql/language';
import { execute } from 'graphql/execution';
import { buildSchema } from 'graphql/utilities';
const schema = buildSchema(`
type Query {
test: String
}
`);
const queryDocument = parse('{ test }');
type ResponseData = { test: string };
const typedQueryDocument = queryDocument as TypedQueryDocumentNode<
ResponseData,
{}
>;
execute({ schema, document: typedQueryDocument });
function wrappedExecute<T>(document: TypedQueryDocumentNode<T>) {
return execute({ schema, document }) as ExecutionResult<T>;
}
const response = wrappedExecute(typedQueryDocument);
const responseData: ResponseData | undefined | null = response.data;
declare function runQueryA(
q: TypedQueryDocumentNode<{ output: string }, { input: string | null }>,
): void;
declare const optionalInputRequiredOutput: TypedQueryDocumentNode<
{ output: string },
{ input: string | null }
>;
runQueryA(optionalInputRequiredOutput);
declare function runQueryB(
q: TypedQueryDocumentNode<{ output: string | null }, { input: string }>,
): void;
runQueryB(optionalInputRequiredOutput);
declare const optionalInputOptionalOutput: TypedQueryDocumentNode<
{ output: string | null },
{ input: string | null }
>;
runQueryB(optionalInputOptionalOutput);
declare const requiredInputRequiredOutput: TypedQueryDocumentNode<
{ output: string },
{ input: string }
>;
runQueryB(requiredInputRequiredOutput);
declare const requiredInputOptionalOutput: TypedQueryDocumentNode<
{ output: null },
{ input: string }
>;
runQueryB(requiredInputOptionalOutput);