import Observable from 'zen-observable-ts'; import { ExecutionResult, DocumentNode } from 'graphql'; export interface GraphQLRequest { query: DocumentNode; variables?: Record; operationName?: string; context?: Record; extensions?: Record; } export interface Operation { query: DocumentNode; variables: Record; operationName: string; extensions: Record; setContext: (context: Record) => Record; getContext: () => Record; toKey: () => string; } export declare type FetchResult, E = Record> = ExecutionResult & { extensions?: E; context?: C; }; export declare type NextLink = (operation: Operation) => Observable; export declare type RequestHandler = (operation: Operation, forward?: NextLink) => Observable | null;