/// <reference types="node" />
import { Configuration } from '../../config.js';
import { Logger } from '../../logger.js';
import { Extension, ExtensionManifest, ExtensionVersion } from '../extension.js';
import { ApiRequest } from './api-request.js';
export declare class RegistryService {
    protected config: Configuration;
    protected api: ApiRequest;
    protected logger: Logger;
    constructor(config: Configuration, api: ApiRequest, logger: Logger);
    listExtensions(): Promise<ExtensionManifest[]>;
    queryVersion(name: string, versionRange: string): Promise<ExtensionVersion>;
    loadExtension(name: string, versionRange: string): Promise<Extension>;
    protected _loadExtensionWithRetry(name: string, versionRange: string, attempts: number): Promise<Extension>;
    loadExtensionBundle(name: string, version: string): Promise<Buffer>;
    getExtensionsRoot(): string;
    getExtensionDir(name: string, version: string): string;
}
//# sourceMappingURL=registry.d.ts.map