import { AppConfig, Integration, ActionHandler, ErrorHandler, Devices, IntegrationConfig, DataObject, Workspaces, AppInfo } from './types';
import XapiImpl from './apis/xapi';
declare class IntegrationImpl implements Integration {
    private http;
    devices: Devices;
    workspaces: Workspaces;
    xapi: XapiImpl;
    tokenExpiryTime: string;
    private actionHandler;
    private errorHandler;
    private appConfig;
    private appUrl;
    constructor(appConfig: AppConfig);
    onError(handler: ErrorHandler): void;
    onAction(handler: ActionHandler): void;
    getAppInfo(): Promise<AppInfo>;
    webexApi(partialUrl: string, method?: string, body?: any, contentType?: string): Promise<any>;
    ping(): Promise<any>;
    decodeJwt(jwt: string): DataObject;
    serialize(): DataObject;
    static deserialize(obj: AppConfig): Promise<IntegrationImpl>;
    pollData(pollUrl: string): Promise<void>;
    processNotifications(notifications: DataObject[]): void;
    decodeAndNotifyAction(action: DataObject): Promise<void>;
    static connect(options: IntegrationConfig): Promise<IntegrationImpl>;
    refreshToken(): Promise<void>;
}
export default IntegrationImpl;
