import { ComponentCategory, CvssVector, V4ScoreResult, VectorComponent, VectorComponentValue } from "../CvssVector";
import { Cvss4P0MacroVector } from "./Cvss4P0MacroVector";
export declare class Cvss4P0 extends CvssVector<V4ScoreResult> {
    constructor(initialVector?: string);
    getRegisteredComponents(): Map<ComponentCategory, VectorComponent<VectorComponentValue>[]>;
    getVectorStringOrderProperties(): Map<ComponentCategory, VectorComponent<VectorComponentValue>[]>;
    getVectorPrefix(): string;
    getVectorName(): string;
    fillAverageVector(): void;
    fillRandomBaseVector(): void;
    protected calculateScoresInternal(normalize?: boolean): V4ScoreResult;
    toString(forceAllComponents?: boolean, categories?: Map<ComponentCategory, VectorComponent<VectorComponentValue>[]>, showOnlyDefinedComponents?: boolean): string;
    calculateOverallScore(): number;
    private readonly ROUNDING_EPSILON;
    private roundToDecimalPlaces;
    private generateCvssPermutations;
    private severityDistance;
    private severityDistanceBetweenComponents;
    severityDistanceToVector(other: Cvss4P0): number;
    calculateSeverityDistancesByComparingToHighestSeverityVectors(highestSeverityVectors: Cvss4P0[]): Map<string, number>;
    /**
     CVSS Nomenclature 	CVSS Metrics Used
     CVSS-B             Base metrics
     CVSS-BE            Base and Environmental metrics
     CVSS-BT            Base and Threat metrics
     CVSS-BTE           Base, Threat, Environmental metrics
     */
    getNomenclature(): string;
    getMacroVector(): Cvss4P0MacroVector;
    isBaseFullyDefined(): boolean;
    isAnyBaseDefined(): boolean;
    isThreatFullyDefined(): boolean;
    isAnyThreatDefined(): boolean;
    isAnyEnvironmentalDefined(): boolean;
    private getJsonSchemaSeverity;
    createJsonSchema(): any;
}
export type JSONSchemaForCommonVulnerabilityScoringSystemVersion40 = JSONSchemaForCommonVulnerabilityScoringSystemVersion401 & JSONSchemaForCommonVulnerabilityScoringSystemVersion402;
export type JSONSchemaForCommonVulnerabilityScoringSystemVersion401 = ({
    baseScore?: NoneScoreType;
    baseSeverity?: NoneSeverityType;
    [k: string]: unknown;
} | {
    baseScore?: LowScoreType;
    baseSeverity?: LowSeverityType;
    [k: string]: unknown;
} | {
    baseScore?: MediumScoreType;
    baseSeverity?: MediumSeverityType;
    [k: string]: unknown;
} | {
    baseScore?: HighScoreType;
    baseSeverity?: HighSeverityType;
    [k: string]: unknown;
} | {
    baseScore?: CriticalScoreType;
    baseSeverity?: CriticalSeverityType;
    [k: string]: unknown;
}) & ({
    threatScore?: NoneScoreType;
    threatSeverity?: NoneSeverityType;
    [k: string]: unknown;
} | {
    threatScore?: LowScoreType;
    threatSeverity?: LowSeverityType;
    [k: string]: unknown;
} | {
    threatScore?: MediumScoreType;
    threatSeverity?: MediumSeverityType;
    [k: string]: unknown;
} | {
    threatScore?: HighScoreType;
    threatSeverity?: HighSeverityType;
    [k: string]: unknown;
} | {
    threatScore?: CriticalScoreType;
    threatSeverity?: CriticalSeverityType;
    [k: string]: unknown;
}) & ({
    environmentalScore?: NoneScoreType;
    environmentalSeverity?: NoneSeverityType;
    [k: string]: unknown;
} | {
    environmentalScore?: LowScoreType;
    environmentalSeverity?: LowSeverityType;
    [k: string]: unknown;
} | {
    environmentalScore?: MediumScoreType;
    environmentalSeverity?: MediumSeverityType;
    [k: string]: unknown;
} | {
    environmentalScore?: HighScoreType;
    environmentalSeverity?: HighSeverityType;
    [k: string]: unknown;
} | {
    environmentalScore?: CriticalScoreType;
    environmentalSeverity?: CriticalSeverityType;
    [k: string]: unknown;
});
export type NoneScoreType = number;
export type NoneSeverityType = "NONE";
export type LowScoreType = number;
export type LowSeverityType = "LOW";
export type MediumScoreType = number;
export type MediumSeverityType = "MEDIUM";
export type HighScoreType = number;
export type HighSeverityType = "HIGH";
export type CriticalScoreType = number;
export type CriticalSeverityType = "CRITICAL";
export type AttackVectorType = "NETWORK" | "ADJACENT" | "LOCAL" | "PHYSICAL";
export type AttackComplexityType = "HIGH" | "LOW";
export type AttackRequirementsType = "NONE" | "PRESENT";
export type PrivilegesRequiredType = "HIGH" | "LOW" | "NONE";
export type UserInteractionType = "NONE" | "PASSIVE" | "ACTIVE";
export type VulnCiaType = "NONE" | "LOW" | "HIGH";
export type SubCiaType = "NONE" | "LOW" | "HIGH";
export type ExploitMaturityType = "UNREPORTED" | "PROOF_OF_CONCEPT" | "ATTACKED" | "NOT_DEFINED";
export type CiaRequirementType = "LOW" | "MEDIUM" | "HIGH" | "NOT_DEFINED";
export type ModifiedAttackVectorType = "NETWORK" | "ADJACENT" | "LOCAL" | "PHYSICAL" | "NOT_DEFINED";
export type ModifiedAttackComplexityType = "HIGH" | "LOW" | "NOT_DEFINED";
export type ModifiedAttackRequirementsType = "NONE" | "PRESENT" | "NOT_DEFINED";
export type ModifiedPrivilegesRequiredType = "HIGH" | "LOW" | "NONE" | "NOT_DEFINED";
export type ModifiedUserInteractionType = "NONE" | "PASSIVE" | "ACTIVE" | "NOT_DEFINED";
export type ModifiedVulnCiaType = "NONE" | "LOW" | "HIGH" | "NOT_DEFINED";
export type ModifiedSubCType = "NEGLIGIBLE" | "LOW" | "HIGH" | "NOT_DEFINED";
export type ModifiedSubIaType = "NEGLIGIBLE" | "LOW" | "HIGH" | "SAFETY" | "NOT_DEFINED";
export type SafetyType = "NEGLIGIBLE" | "PRESENT" | "NOT_DEFINED";
export type AutomatableType = "NO" | "YES" | "NOT_DEFINED";
export type RecoveryType = "AUTOMATIC" | "USER" | "IRRECOVERABLE" | "NOT_DEFINED";
export type ValueDensityType = "DIFFUSE" | "CONCENTRATED" | "NOT_DEFINED";
export type VulnerabilityResponseEffortType = "LOW" | "MODERATE" | "HIGH" | "NOT_DEFINED";
export type ProviderUrgencyType = "CLEAR" | "GREEN" | "AMBER" | "RED" | "NOT_DEFINED";
export interface JSONSchemaForCommonVulnerabilityScoringSystemVersion402 {
    /**
     * CVSS Version
     */
    version: "4.0";
    vectorString: string;
    attackVector?: AttackVectorType;
    attackComplexity?: AttackComplexityType;
    attackRequirements?: AttackRequirementsType;
    privilegesRequired?: PrivilegesRequiredType;
    userInteraction?: UserInteractionType;
    vulnConfidentialityImpact?: VulnCiaType;
    vulnIntegrityImpact?: VulnCiaType;
    vulnAvailabilityImpact?: VulnCiaType;
    subConfidentialityImpact?: SubCiaType;
    subIntegrityImpact?: SubCiaType;
    subAvailabilityImpact?: SubCiaType;
    exploitMaturity?: ExploitMaturityType;
    confidentialityRequirement?: CiaRequirementType;
    integrityRequirement?: CiaRequirementType;
    availabilityRequirement?: CiaRequirementType;
    modifiedAttackVector?: ModifiedAttackVectorType;
    modifiedAttackComplexity?: ModifiedAttackComplexityType;
    modifiedAttackRequirements?: ModifiedAttackRequirementsType;
    modifiedPrivilegesRequired?: ModifiedPrivilegesRequiredType;
    modifiedUserInteraction?: ModifiedUserInteractionType;
    modifiedVulnConfidentialityImpact?: ModifiedVulnCiaType;
    modifiedVulnIntegrityImpact?: ModifiedVulnCiaType;
    modifiedVulnAvailabilityImpact?: ModifiedVulnCiaType;
    modifiedSubConfidentialityImpact?: ModifiedSubCType;
    modifiedSubIntegrityImpact?: ModifiedSubIaType;
    modifiedSubAvailabilityImpact?: ModifiedSubIaType;
    Safety?: SafetyType;
    Automatable?: AutomatableType;
    Recovery?: RecoveryType;
    valueDensity?: ValueDensityType;
    vulnerabilityResponseEffort?: VulnerabilityResponseEffortType;
    providerUrgency?: ProviderUrgencyType;
    [k: string]: unknown;
}
