///
/*!
* Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* Licensed under the Amazon Software License (the "License"). You may not use this file except in compliance with the License. A copy of
* the License is located at
* http://aws.amazon.com/asl/
* or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, express or implied. See the License for the specific language governing permissions and limitations under the License.
*/
import { ApolloLink, Observable, Operation, FetchResult } from "apollo-link";
declare type MqttConnectionInfo = {
client: string;
url: string;
topics: string[];
};
export declare const CONTROL_EVENTS_KEY = "@@controlEvents";
export declare class SubscriptionHandshakeLink extends ApolloLink {
private subsInfoContextKey;
private topicObservers;
private clientObservers;
constructor(subsInfoContextKey: any);
request(operation: Operation): Observable<{}>;
connectNewClients(connectionInfo: MqttConnectionInfo[], observer: ZenObservable.Observer, operation: Operation): Promise;
connectNewClient(connectionInfo: MqttConnectionInfo, observer: ZenObservable.Observer, selectionNames: string[]): Promise;
subscribeToTopics(client: any, topics: string[], observer: ZenObservable.Observer): Promise<{}[]>;
subscribeToTopic(client: any, topic: string, observer: ZenObservable.Observer): Promise<{}>;
onMessage: (topic: string, message: string, selectionNames: string[]) => void;
}
export {};