///
import Clock from './clock';
import EventEmitter2 from 'eventemitter2';
import { HttpsProxyAgent } from 'https-proxy-agent';
export type Job = {
id: string;
[key: string]: any;
};
export type MontiOptions = {
appId: string;
appSecret: string;
agentVersion: string;
endpoint: string;
hostname: string;
clockSyncInterval: number;
dataFlushInterval: number;
retryOptions: {
maxRetries: number;
authRetryDelay: number;
};
proxy?: string;
};
export declare class Monti extends EventEmitter2 {
_supportedFeatures: {
websockets: boolean;
};
_allowedFeatures: Record;
_options: MontiOptions;
_headers: Record;
_clock: Clock;
_clockSyncInterval: NodeJS.Timeout | null;
_disconnectWebSocket: (() => void) | null;
_disconnected: boolean;
_agent: HttpsProxyAgent | undefined;
constructor(_options?: Partial);
get _websocketHeaders(): {
'monti-supported-features': string;
};
featureSupported(feature: string): boolean;
connect(): Promise;
disconnect(): void;
getJob(id: string): Promise;
updateJob(id: string, diff: Record): Promise;
sendData(_payload: Record): Promise;
get(path: string, options?: {
noRetry?: boolean;
}): Promise;
sendStream(path: string, stream: ReadableStream): Promise;
_handleJobEvent(job: Job): void;
_handleMessage(message: string): void;
_initWebSocket(): void;
_checkAuth(): Promise;
_send(url: string, params: Record): Promise;
}
export default Monti;
export * from './constants';