import { TypedDocumentNode } from '@graphql-typed-document-node/core';
import { DocumentNode } from 'graphql';
import { Observable } from 'rxjs';
import { Apollo } from './apollo';
import { SubscriptionOptionsAlone, ExtraSubscriptionOptions, SubscriptionResult, EmptyObject } from './types';
export declare class Subscription<T = any, V = EmptyObject> {
    protected apollo: Apollo;
    readonly document: DocumentNode | TypedDocumentNode<T, V>;
    client: string;
    constructor(apollo: Apollo);
    subscribe(variables?: V, options?: SubscriptionOptionsAlone<V, T>, extra?: ExtraSubscriptionOptions): Observable<SubscriptionResult<T>>;
}
