import type * as requestType from 'request'; export declare class RokuECP { private doRequest; /** * Enables perfetto tracing for the specified channel * @param channelID * @returns */ enablePerfettoTracing(options: BaseOptions & { channelId: string; }): Promise; /** * capture a heap snapshot. This doesn't return it, but instead will cause it to be written to the already-connected perfetto websocket. * @param channelId * @returns */ captureHeapSnapshot(options: BaseOptions & { channelId: string; }): Promise; private getEcpStatus; private parseResponse; getRegistry(options: BaseOptions & { appId: string; }): Promise; private processRegistry; getAppState(options: BaseOptions & { appId: string; }): Promise; private processAppState; exitApp(options: BaseOptions & { appId: string; }): Promise; private processExitApp; } export declare enum EcpStatus { ok = "ok", failed = "failed" } interface BaseOptions { host: string; remotePort?: number; requestOptions?: requestType.CoreOptions; } interface BaseEcpResponse { status: EcpStatus; errorMessage?: string; } export type RokuEcpParam = Parameters[0]; export type ParsedEcpRoot = { [key in T1]: T2; }; interface ParsedEcpBase { status?: [string]; error?: [string]; } export interface EcpRegistryData extends BaseEcpResponse { devId?: string; plugins?: Array; sections?: Record>; spaceAvailable?: string; state?: string; } export declare enum AppState { active = "active", background = "background", inactive = "inactive", unknown = "unknown" } export interface EcpAppStateData { appId?: string; appTitle?: string; appVersion?: string; appDevId?: string; state?: AppState; status: EcpStatus; errorMessage?: string; } export interface EcpPerfettoEnableData extends BaseEcpResponse { enabledChannels: string[]; timestamp?: number; timestampEnd?: number; } export interface EcpExitAppData { status: EcpStatus; errorMessage?: string; } export interface EcpHeapSnapshotData extends BaseEcpResponse { timestamp: number; timestampEnd: number; } export declare const rokuECP: RokuECP; export {};