import { IBetterLogger } from "@codiac.io/codiac-common";
import { CloudProviderEnum, ImageRegistry } from "@codiac.io/codiac-domain";
import { IOutputStyler, IUserInputProvider } from "../../ops";
import { RelayClient as GenRelayClient } from "../../apis/codiac-relay";
import * as sdk from "../../sdk";
import { CloudProviderUser, LogintoCloudProviderRequest } from "../../apis/codiac-relay/contracts";
import { UserNameTenantCode } from "@codiac.io/codiac-ops-common";
import { ICspLoginOptions } from "../../sdk";
/** Walks the user through the selection of an existing
 * or the declaration of a new image registry.
 */
export declare class DockerHubResourceConfigurator implements sdk.IRegistryConfigurator, sdk.ILoginConfigurator {
    private codiacUser;
    private relayClient;
    private _ui;
    private _styler;
    private logger;
    constructor(codiacUser: UserNameTenantCode, relayClient: GenRelayClient, _ui: IUserInputProvider, _styler: IOutputStyler, logger: IBetterLogger);
    readonly cloudProvider = CloudProviderEnum["dockerHub"];
    /** Currently supporting only a single reg type per cloud provider. */
    private regType;
    captureImageRegistry(): Promise<ImageRegistry>;
    promptToLogin(options?: ICspLoginOptions): Promise<[boolean, CloudProviderUser]>;
    assembleLoginRequest(userName: string | undefined, secret: string | undefined, subscriptionId: string | undefined, proprietaryInput: {
        [key: string]: any;
    }): LogintoCloudProviderRequest;
    promptToLogout(): Promise<[boolean, string]>;
}
