/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/
import { IDiagnosticsService, IMachineInfo, IMainProcessDiagnostics, IRemoteDiagnosticError, IRemoteDiagnosticInfo, IWorkspaceInformation, PerformanceInfo, SystemInfo, WorkspaceStatItem, WorkspaceStats } from "../common/diagnostics.mjs";
import { IProductService } from "../../product/common/productService.mjs";
import { ITelemetryService } from "../../telemetry/common/telemetry.mjs";
import { IWorkspace } from "../../workspace/common/workspace.mjs";
export declare function collectWorkspaceStats(folder: string, filter: string[]): Promise<WorkspaceStats>;
export declare function getMachineInfo(): IMachineInfo;
export declare function collectLaunchConfigs(folder: string): Promise<WorkspaceStatItem[]>;
export declare class DiagnosticsService implements IDiagnosticsService {
    private readonly telemetryService;
    private readonly productService;
    readonly _serviceBrand: undefined;
    constructor(telemetryService: ITelemetryService, productService: IProductService);
    private formatMachineInfo;
    private formatEnvironment;
    getPerformanceInfo(info: IMainProcessDiagnostics, remoteData: (IRemoteDiagnosticInfo | IRemoteDiagnosticError)[]): Promise<PerformanceInfo>;
    getSystemInfo(info: IMainProcessDiagnostics, remoteData: (IRemoteDiagnosticInfo | IRemoteDiagnosticError)[]): Promise<SystemInfo>;
    getDiagnostics(info: IMainProcessDiagnostics, remoteDiagnostics: (IRemoteDiagnosticInfo | IRemoteDiagnosticError)[]): Promise<string>;
    private formatWorkspaceStats;
    private expandGPUFeatures;
    private formatWorkspaceMetadata;
    private formatProcessList;
    private formatProcessItem;
    getWorkspaceFileExtensions(workspace: IWorkspace): Promise<{
        extensions: string[];
    }>;
    reportWorkspaceStats(workspace: IWorkspaceInformation): Promise<void>;
}
