import { CloudProviderEnum } from "@codiac.io/codiac-domain";
import { interfaces } from "inversify";
import * as sdk from "../sdk";
import { CommandBaseEnterprise } from "../command-base-enterprise";
export declare class INTERFACES_CLI_ENTERPRISE {
    static readonly IRegistryConfigurator: symbol;
    static readonly IClusterConfigurator: symbol;
    static readonly ICodiacClient: symbol;
    static readonly IAuthClient: symbol;
    static readonly IContainerManager: symbol;
    static readonly ILoginConfigurator: symbol;
    static readonly ISecretStoreConfigurator: symbol;
    static readonly IFileStoreConfigurator: symbol;
    static readonly CspSupportMap: symbol;
}
export declare class RegistryConfiguratorFactory {
    /** Idempotent. */
    static bootstrap(ioc: interfaces.Container): void;
    constructor();
    create(provider: CloudProviderEnum, ioc: interfaces.Container): sdk.IRegistryConfigurator;
}
export declare class ClusterConfiguratorFactory {
    /** Idempotent. */
    static bootstrap(ioc: interfaces.Container, cmd: CommandBaseEnterprise): void;
    private static isBootstrapped;
    constructor();
    create(provider: CloudProviderEnum, ioc: interfaces.Container): sdk.IClusterConfigurator;
    getAllClusterProviders(ioc: interfaces.Container): CloudProviderEnum[];
    getAllFileStoreProviders(ioc: interfaces.Container): CloudProviderEnum[];
    getAllRegistryProviders(ioc: interfaces.Container): CloudProviderEnum[];
    getAllSecretStoreProviders(ioc: interfaces.Container): CloudProviderEnum[];
}
export declare class FileStoreConfiguratorFactory {
    private ioc;
    /** Idempotent. */
    static bootstrap(ioc: interfaces.Container): void;
    constructor(ioc: interfaces.Container);
    create(provider: CloudProviderEnum, ioc?: interfaces.Container): sdk.IFileStoreConfigurator;
    getAllProviders(ioc?: interfaces.Container): CloudProviderEnum[];
}
export declare class SecretStoreConfiguratorFactory {
    /** Idempotent. */
    static bootstrap(ioc: interfaces.Container): void;
    constructor();
    create(provider: CloudProviderEnum, ioc: interfaces.Container): sdk.ISecretStoreConfigurator;
    getAllProviders(ioc: interfaces.Container): CloudProviderEnum[];
}
export declare class LoginConfiguratorFactory {
    /** Idempotent. */
    static bootstrap(ioc: interfaces.Container): void;
    constructor();
    create(provider: CloudProviderEnum, ioc: interfaces.Container): sdk.ILoginConfigurator;
    getAllProviders(ioc: interfaces.Container): CloudProviderEnum[];
}
