import { OutputConfig, ResourcesData, EmissionsData, FormattedResults, ResultsMetadata } from '../types';
declare class OutputFormatter {
    private config;
    constructor(customConfig?: Partial<OutputConfig>);
    /**
     * Format calculation results as a structured object
     * @param {string} url - The URL that was analyzed
     * @param {ResourcesData} resourcesData - Resource data from the NetworkInterceptor
     * @param {EmissionsData} emissionsData - Emissions data from the CO2Calculator
     * @param {Object} metadata - Additional metadata about the analysis
     * @returns {FormattedResults} - Formatted results
     */
    formatResults(url: string, resourcesData: ResourcesData, emissionsData: EmissionsData, metadata?: Partial<ResultsMetadata>): FormattedResults;
    /**
     * Calculate the percentage of green-hosted resources
     * @param {EmissionsData} emissionsData - Emissions data
     * @returns {number} - Percentage of green-hosted resources (by size)
     */
    private calculateGreenPercentage;
    /**
     * Format the resource type breakdown
     * @param {Record<string, TypeEmissions>} typeData - Breakdown by resource type
     * @returns {Record<string, TypeEmissions>} - Formatted breakdown
     */
    private formatTypeBreakdown;
    /**
     * Format the domain breakdown
     * @param {Record<string, DomainEmissions>} domainData - Breakdown by domain
     * @returns {Record<string, DomainEmissions>} - Formatted breakdown
     */
    private formatDomainBreakdown;
    /**
     * Format the green hosting breakdown
     * @param {Object} hostingData - Breakdown by hosting type
     * @returns {Object} - Formatted breakdown
     */
    private formatHostingBreakdown;
    /**
     * Format the detailed resource list
     * @param {ResourceEmissions[]} resourcesData - List of resource emissions data
     * @returns {ResourceEmissions[]} - Formatted resource list
     */
    private formatResourceDetails;
    /**
     * Format the human-readable comparisons
     * @param {Comparisons} comparisons - Comparison metrics
     * @returns {Comparisons} - Formatted comparisons
     */
    private formatComparisons;
    /**
     * Round a number to a reasonable precision
     * @param {number} value - The number to round
     * @param {number} decimals - Number of decimal places
     * @returns {number} - Rounded number
     */
    private roundNumber;
    /**
     * Convert results to a string format
     * @param {FormattedResults} results - Formatted results object
     * @returns {string} - String representation of results
     */
    stringify(results: FormattedResults): string;
}
export default OutputFormatter;
