/// <reference types="node" />
import { HomieDevice } from "@chrispyduck/homie-device";
import { ISensor } from "../ISensor";
import { ICableModemScraperConfiguration } from "./INetClientConfiguration";
import { EventEmitter } from "events";
export default class ArrisSurfboardStatus extends EventEmitter implements ISensor<IMetrics> {
    static readonly DefaultConfiguration: ICableModemScraperConfiguration;
    constructor(config?: ICableModemScraperConfiguration);
    private readonly config;
    private homieRegistration;
    register(device: HomieDevice): void;
    read: () => Promise<IMetrics>;
    init(): Promise<void>;
    private extractSummary;
    private extractDownstreamChannels;
    private extractUpstreamChannels;
}
export interface IMetrics {
    startupProcedureStatus: IGeneralStatus;
    downstreamChannels: Array<IDownstreamChannel>;
    upstreamChannels: Array<IUpstreamChannel>;
}
export interface IGeneralStatus {
    downstreamChannelStatus?: string;
    downstreamChannelFrequency?: number;
    connectivityState?: string;
    bootState?: string;
    configurationFileStatus?: string;
    securityStatus?: string;
    networkAccess?: string;
}
export interface IChannel {
    id: number;
    lockStatus: string;
    frequency: number;
    power: number;
}
export interface IDownstreamChannel extends IChannel {
    modulation: string;
    snr: number;
    corrected: number;
    uncorrectable: number;
}
export interface IUpstreamChannel extends IChannel {
    channelType: string;
    width: number;
}
//# sourceMappingURL=ArrisSurfboard.d.ts.map