import { IccAuthApi, IccDeviceApi } from '../icc-api'; import { Device } from '../icc-api/model/Device'; import { AuthenticationProvider } from './auth/AuthenticationProvider'; import { AbstractFilter } from "./filters/filters"; import { Connection } from "../icc-api/model/Connection"; import { SubscriptionOptions } from "./utils/websocket"; import { IccUserXApi } from "./icc-user-x-api"; export declare class IccDeviceXApi extends IccDeviceApi { private readonly userApi; private readonly authApi; constructor(host: string, headers: { [key: string]: string; }, authenticationProvider: AuthenticationProvider | undefined, userApi: IccUserXApi, authApi: IccAuthApi, fetchImpl?: (input: RequestInfo, init?: RequestInit) => Promise); /** * Subscribes to real-time device events using a WebSocket connection. * @param eventTypes the types of events to listen for (e.g. 'CREATE', 'UPDATE', 'DELETE'). * @param filter an optional filter to restrict which device events trigger the callback. * @param eventFired the callback function invoked when a matching device event is received. * @param options optional subscription configuration such as connection parameters and retry behaviour. * @return a connection object that can be used to manage the WebSocket subscription lifecycle. */ subscribeToDeviceEvents(eventTypes: ('CREATE' | 'UPDATE' | 'DELETE')[], filter: AbstractFilter | undefined, eventFired: (dataSample: Device) => Promise, options?: SubscriptionOptions): Promise; }