import { IBetterLogger } from "@codiac.io/codiac-common";
import { 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 { CspPrimaryCredsMeta, LogintoCloudProviderRequest } from "../../apis/codiac-relay/contracts";
import { UserNameTenantCode } from "@codiac.io/codiac-ops-common";
import { ICspAccountFilter, 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: "dockerHub";
    /** Currently supporting only a single reg type per cloud provider. */
    private regType;
    captureImageRegistry(): Promise<ImageRegistry>;
    promptToLogin(options?: ICspLoginOptions): Promise<[boolean, CspPrimaryCredsMeta]>;
    assembleLoginRequest(userName: string | undefined, secret: string | undefined, subscriptionId: string | undefined, proprietaryInput: {
        [key: string]: any;
    }): LogintoCloudProviderRequest;
    promptToLogout(accountFilter?: ICspAccountFilter): Promise<[boolean, string]>;
}
