import type { Diagnose, DiagnosedDocsis31ChannelStatus, DiagnosedDocsisChannelStatus, DiagnosedDocsisStatus, DocsisChannelType, DocsisStatus, Modulation } from './modem';
export interface Deviation {
    channelType?: DocsisChannelType;
    check(powerLevel: number): Diagnose;
    modulation: 'Unknown' | Modulation;
}
export default class DocsisDiagnose {
    private docsisStatus;
    constructor(docsisStatus: DocsisStatus);
    get diagnose(): DiagnosedDocsisStatus;
    checkDownstream(): DiagnosedDocsisChannelStatus[];
    checkDownstreamSNR(): DiagnosedDocsisChannelStatus[];
    checkOfdmaUpstream(): DiagnosedDocsis31ChannelStatus[];
    checkOfdmDownstream(): DiagnosedDocsis31ChannelStatus[];
    checkOfdmDownstreamSNR(): DiagnosedDocsis31ChannelStatus[];
    checkUpstream(): DiagnosedDocsisChannelStatus[];
    hasDeviations(): boolean;
    printDeviationsConsole(): string;
}
export declare const SEVERITY_COLORS: {
    green: string;
    red: string;
    yellow: string;
};
export declare function colorize(severity: 'green' | 'red' | 'yellow', message: string): string;
export declare class UpstreamDeviationSCQAM implements Deviation {
    channelType: "SC-QAM";
    modulation: "64QAM";
    check(powerLevel: number): Diagnose;
}
export declare class UpstreamDeviationOFDMA implements Deviation {
    channelType: "OFDMA";
    modulation: "64QAM";
    check(powerLevel: number): Diagnose;
}
export declare function downstreamDeviation({ modulation, powerLevel }: {
    modulation: Modulation;
    powerLevel: number;
}): Diagnose;
export declare class DownstreamDeviation64QAM implements Deviation {
    modulation: "64QAM";
    check(powerLevel: number): Diagnose;
}
export declare class DownstreamDeviation256QAM implements Deviation {
    delegate: DownstreamDeviation64QAM;
    modulation: "256QAM";
    check(powerLevel: number): Diagnose;
}
export declare class DownstreamDeviation1024QAM implements Deviation {
    delegate: DownstreamDeviation64QAM;
    modulation: "1024QAM";
    check(powerLevel: number): Diagnose;
}
export declare class DownstreamDeviation2048QAM implements Deviation {
    delegate: DownstreamDeviation64QAM;
    modulation: "2048QAM";
    check(powerLevel: number): Diagnose;
}
export declare class DownstreamDeviation4096QAM implements Deviation {
    delegate: DownstreamDeviation64QAM;
    modulation: "4096QAM";
    check(powerLevel: number): Diagnose;
}
export declare class DownstreamDeviationUnknown implements Deviation {
    modulation: "Unknown";
    check(_powerLevel: number): Diagnose;
}
export declare const FixImmediately: Diagnose;
export declare const CompliesToSpecifications: Diagnose;
export declare const ToleratedDeviation: Diagnose;
export declare const FixWithinOneMonth: Diagnose;
export declare function downstreamDeviationFactory(modulation: 'Unknown' | Modulation): Deviation;
export declare function upstreamDeviationFactory(channelType: DocsisChannelType): Deviation;
export declare function upstreamDeviation({ channelType, powerLevel }: {
    channelType: DocsisChannelType;
    powerLevel: number;
}): Diagnose;
export declare function checkSignalToNoise({ modulation, snr }: {
    modulation: Modulation;
    snr: number;
}): Diagnose;
