import BaseSession from './BaseSession';
import { SubscribeParams, BroadcastParams } from './util/interfaces';
import { RPCImpl, rpc } from 'protobufjs';
import { uas } from './proto/uas.pb';
export declare const XCALL_PROTOCOL = "xcall-protocol";
export default class Xcall extends BaseSession {
    relayProtocol: string;
    timeoutErrorCode: number;
    validateOptions(): boolean;
    createWebSockerAdapter(name: string): RPCImpl;
    createHttpAdapter(URI: string): RPCImpl;
    create<T extends rpc.Service>(service: {
        new (adapter: RPCImpl): T;
    }, name: string, stream: Boolean): T;
    broadcast({ channel: eventChannel, data }: BroadcastParams): void;
    subscribe({ channels: eventChannel, handler }: SubscribeParams): Promise<any>;
    unsubscribe({ channels: eventChannel, handler }: SubscribeParams): Promise<any>;
    setToken(token: string): Promise<uas.Response>;
    isAuthorized(): Boolean;
}
