import { IBetterLogger } from "@codiac.io/codiac-common";
import { interfaces } from "inversify";
import { ImageRegistry, PackageType as PackageTypeEnum } from "../apis/codiac-api/contracts";
import { RelayClient } from "../apis/codiac-relay";
import { CloudProviderContextualizer } from "./cloud-provider-contextualizer";
import { IOutputStyler, IUserInputProvider } from "../ops";
import { ICodiacClient } from "../apis/codiac-api/i-client";
/** Registry definition. */
export type RegistryReference = Partial<ImageRegistry>;
/**
 *
 */
export declare class ImageRegistryContextualizer {
    private _uiCloudProvider;
    private _codiacApi;
    private relayClient;
    private _ui;
    private _styler;
    private logger;
    constructor(_uiCloudProvider: CloudProviderContextualizer, _codiacApi: ICodiacClient, relayClient: RelayClient, _ui: IUserInputProvider, _styler: IOutputStyler, logger: IBetterLogger);
    /** Selection of an EITHER:
     *  a) existing registry definition,
     *  b) a selector for a built-in registry type,
     *  c) manual entry of a registry url
     */
    promptForRegistry(packageType: PackageTypeEnum, ioc: interfaces.Container, defaults: RegistryReference, captureOnly?: boolean): Promise<ImageRegistry>;
    /** Allows the user to OPTIONALLY select a registry that this tenant has already captured. */
    promptForExistingRegistry(packageType: PackageTypeEnum, includeOptionToCapture?: boolean, registries?: ImageRegistry[]): Promise<ImageRegistry | undefined>;
    /** Selection of an EITHER:
   *  a) existing registry definition,
   *  b) a selector for a built-in registry type,
   *  c) manual entry of a registry url
   */
    promptForHelmRepository(packageType: PackageTypeEnum, ioc: interfaces.Container, defaults: RegistryReference, captureOnly?: boolean): Promise<ImageRegistry>;
}
