/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/
import { IExtensionIdentifier, IGalleryExtension, ILocalExtension } from "./extensionManagement.mjs";
import { ExtensionIdentifier, IExtension, TargetPlatform } from "../../extensions/common/extensions.mjs";
import { IFileService } from "../../files/common/files.mjs";
import { ILogService } from "../../log/common/log.mjs";
export declare function areSameExtensions(a: IExtensionIdentifier, b: IExtensionIdentifier): boolean;
export declare class ExtensionKey {
    readonly version: string;
    readonly targetPlatform: TargetPlatform;
    static create(extension: IExtension | IGalleryExtension): ExtensionKey;
    static parse(key: string): ExtensionKey | null;
    readonly id: string;
    constructor(identifier: IExtensionIdentifier, version: string, targetPlatform?: TargetPlatform);
    toString(): string;
    equals(o: any): boolean;
}
export declare function getIdAndVersion(id: string): [string, string | undefined];
export declare function getExtensionId(publisher: string, name: string): string;
export declare function adoptToGalleryExtensionId(id: string): string;
export declare function getGalleryExtensionId(publisher: string, name: string): string;
export declare function groupByExtension<T>(extensions: T[], getExtensionIdentifier: (t: T) => IExtensionIdentifier): T[][];
export declare function getLocalExtensionTelemetryData(extension: ILocalExtension): any;
export declare function getGalleryExtensionTelemetryData(extension: IGalleryExtension): any;
export declare const BetterMergeId: ExtensionIdentifier;
export declare function getExtensionDependencies(installedExtensions: ReadonlyArray<IExtension>, extension: IExtension): IExtension[];
export declare function isAlpineLinux(fileService: IFileService, logService: ILogService): Promise<boolean>;
export declare function computeTargetPlatform(fileService: IFileService, logService: ILogService): Promise<TargetPlatform>;
