import { CloudProviderEnum } from "@codiac.io/codiac-domain";
import { CloudProviderUser, LogintoCloudProviderRequest } from "../apis/codiac-relay/contracts";
export interface ILoginConfigurator {
    get cloudProvider(): CloudProviderEnum;
    promptToLogin(providerSubscriptionId?: string, suppressConfirmations?: boolean, providedUserName?: string, providedSecret?: string, proprietaryInput?: {
        [property: string]: any;
    } | undefined): Promise<[boolean, CloudProviderUser]>;
    promptToLogout(): Promise<[boolean, string]>;
    /** Used when cloud service provider has special proprietary input
     * required for csp login that breaks the standard patterns.
     * This method allows that provider a chance to build the login request however they see fit. */
    assembleLoginRequest(user: string | undefined, secret: string | undefined, subscriptionId: string | undefined, proprietaryInput: {
        [key: string]: any;
    }): LogintoCloudProviderRequest;
}
