import { CloudProviderEnum } from "@codiac.io/codiac-domain";
import { interfaces } from "inversify";
import { IRegistryConfigurator } from "./i-registry-configurator";
import { IClusterConfigurator } from "./i-cluster-configurator";
import { ISecretStoreConfigurator } from "./i-secret-store-configurator";
import { ILoginConfigurator } from "./i-login-configurator";
import { IFileStoreConfigurator } from "./i-file-store-configurator";
export declare class INTERFACES_CLI_ENTERPRISE {
    static readonly IRegistryConfigurator: symbol;
    static readonly IClusterConfigurator: symbol;
    static readonly IContainerManager: symbol;
    static readonly ILoginConfigurator: symbol;
    static readonly ISecretStoreConfigurator: symbol;
    static readonly IFileStoreConfigurator: symbol;
}
export declare class RegistryConfiguratorFactory {
    /** Idempotent. */
    static bootstrap(ioc: interfaces.Container): void;
    constructor();
    create(provider: CloudProviderEnum, ioc: interfaces.Container): IRegistryConfigurator;
}
export declare class ClusterConfiguratorFactory {
    /** Idempotent. */
    static bootstrap(ioc: interfaces.Container): void;
    private static isBootstrapped;
    constructor();
    create(provider: CloudProviderEnum, ioc: interfaces.Container): IClusterConfigurator;
    getAllProviders(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): IFileStoreConfigurator;
    getAllProviders(ioc?: interfaces.Container): CloudProviderEnum[];
}
export declare class SecretStoreConfiguratorFactory {
    /** Idempotent. */
    static bootstrap(ioc: interfaces.Container): void;
    constructor();
    create(provider: CloudProviderEnum, ioc: interfaces.Container): ISecretStoreConfigurator;
    getAllProviders(ioc: interfaces.Container): CloudProviderEnum[];
}
export declare class LoginConfiguratorFactory {
    /** Idempotent. */
    static bootstrap(ioc: interfaces.Container): void;
    constructor();
    create(provider: CloudProviderEnum, ioc: interfaces.Container): ILoginConfigurator;
    getAllProviders(ioc: interfaces.Container): CloudProviderEnum[];
}
