import RestClient from '../lib/RestClient'; import WebSocketClient from './WebSocketClient'; import TypedEventEmitter from '../lib/TypedEventEmitter'; import { ApiClientEvents } from './events'; import { ServerConnectData, ServerDisconnectData } from './WebSocketClient/events'; import { JSONValue } from '../types/json'; import { SupernetType } from './WebSocketClient/types'; import { Logger } from '../lib/DefaultLogger'; import AuthManager, { Tokens } from '../lib/AuthManager'; export interface ApiReponse { status: 'success'; data: D; } /** @inline */ export interface ApiErrorResponse { status: 'error'; message: string; errorCode: number; } export declare class ApiError extends Error { status: number; payload: ApiErrorResponse; constructor(status: number, payload: ApiErrorResponse); } declare class ApiClient extends TypedEventEmitter { readonly appId: string; readonly logger: Logger; private _rest; private _socket; private _auth; private _reconnectAttempts; constructor(baseUrl: string, socketUrl: string, appId: string, networkType: SupernetType, logger: Logger, agent?: any); get isAuthenticated(): boolean; get auth(): AuthManager; get socket(): WebSocketClient; get rest(): RestClient; authenticate(tokens: Tokens): Promise; removeAuth(): void; handleSocketConnect({ network }: ServerConnectData): void; handleSocketDisconnect(data: ServerDisconnectData): void; handleRefreshFailed(): void; } export default ApiClient;