import Observable from 'zen-observable-ts';
import { GraphQLRequest, NextLink, Operation, RequestHandler, FetchResult } from './types';
export declare const empty: () => ApolloLink;
export declare const from: (links: ApolloLink[]) => ApolloLink;
export declare const split: (test: (op: Operation) => boolean, left: ApolloLink | RequestHandler, right?: ApolloLink | RequestHandler) => ApolloLink;
export declare const concat: (first: ApolloLink | RequestHandler, second: ApolloLink | RequestHandler) => ApolloLink;
export declare class ApolloLink {
constructor(request?: RequestHandler);
static empty: () => ApolloLink;
static from: (links: ApolloLink[]) => ApolloLink;
static split: (test: (op: Operation) => boolean, left: ApolloLink | RequestHandler, right?: ApolloLink | RequestHandler) => ApolloLink;
static execute: typeof execute;
split(test: (op: Operation) => boolean, left: ApolloLink | RequestHandler, right?: ApolloLink | RequestHandler): ApolloLink;
concat(next: ApolloLink | RequestHandler): ApolloLink;
request(operation: Operation, forward?: NextLink): Observable<FetchResult> | null;
}
export declare function execute(link: ApolloLink, operation: GraphQLRequest): Observable<FetchResult>;