import Observable from 'zen-observable-ts'; import { ClientEvent, ICache, IClientOptions, IExchange, IExchangeResult, IQuery } from '../interfaces/index'; export default class Client { url: string; store: object; subscriptionSize: number; cache: ICache; exchange: IExchange; fetchOptions: RequestInit | (() => RequestInit); subscriptions: { [id: string]: (ClientEvent) => void; }; constructor(opts?: IClientOptions); updateSubscribers(typenames: string[], changes: IExchangeResult): void; subscribe(callback: (event: ClientEvent) => void): () => void; refreshAllFromCache(): Promise<{}>; makeContext({skipCache}: { skipCache?: boolean; }): Record; executeSubscription$(subscriptionObject: IQuery): Observable; executeQuery$(queryObject: IQuery, skipCache: boolean): Observable; executeQuery(queryObject: IQuery, skipCache: boolean): Promise; executeMutation$(mutationObject: IQuery): Observable; executeMutation(mutationObject: IQuery): Promise; invalidateQuery(queryObject: IQuery): Promise; }