import { IExtensionMetaData, IExtraMetaData } from '../common';
export declare class ExtensionScanner {
    private scan;
    private localization;
    private extensionCandidate;
    private extraMetaData;
    static getExtension(extensionPath: string, localization: string, extraMetaData?: IExtraMetaData): Promise<IExtensionMetaData | undefined>;
    /**
     * 通过文件夹名获取插件 id
     * 文件夹名目前有两种：
     *  1. ${publisher}.${name}-${version} (推荐)
     *  2. ${extensionId}-${name}-${version}
     *  以上两种
     * @param extensionPath
     * @param version 可能有用户使用非 semver 的规范，所以传进来
     */
    static getExtensionIdByExtensionPath(extensionPath: string, version?: string): string;
    private results;
    private availableExtensions;
    constructor(scan: string[], localization: string, extensionCandidate: string[], extraMetaData: IExtraMetaData);
    run(): Promise<IExtensionMetaData[]>;
    private scanDir;
    static getLocalizedExtraMetadataPath(prefix: string, extensionPath: string, localization: string, suffix: string): Promise<string | undefined>;
    private isLatestVersion;
    getExtension(extensionPath: string, localization: string, extraMetaData?: IExtraMetaData): Promise<IExtensionMetaData | undefined>;
}
//# sourceMappingURL=extension.scanner.d.ts.map