import * as cdk from "aws-cdk-lib";
import * as constructs from "constructs";
export interface EnvironmentConfiguration {
    readonly account?: string;
    readonly region?: string;
    readonly resources?: {
        [key: string]: any;
    };
    readonly tags?: {
        [key: string]: string;
    };
    readonly bootstrap?: {
        [key: string]: string;
    };
    readonly props?: {
        [key: string]: any;
    };
}
export interface Configuration {
    readonly environments: {
        [id: string]: EnvironmentConfiguration;
    };
    readonly account?: string;
    readonly region?: string;
    readonly tags?: {
        [key: string]: string;
    };
    readonly bootstrap?: {
        [key: string]: string;
    };
    readonly ddkBootstrapConfigKey?: string;
    readonly props?: {
        [key: string]: any;
    };
}
export interface GetConfigProps {
    readonly config?: string | Configuration;
}
export declare function getConfig(props: GetConfigProps): Configuration | null;
export declare function getEnvironment(config: Configuration | string, environmentId?: string): cdk.Environment;
interface getStackSynthesizerProps {
    readonly config?: string | Configuration;
    readonly environmentId: string;
}
export declare function getStackSynthesizer(props: getStackSynthesizerProps): cdk.IStackSynthesizer;
export interface GetEnvConfigProps {
    /**
     * Relative path to config file. Defaults to './ddk.json'
     */
    readonly configPath?: string;
    /**
     * Environment identifier
     */
    readonly environmentId: string;
}
export interface GetTagsProps {
    /**
     * Relative path to config file. Defaults to './ddk.json'
     */
    readonly configPath?: string;
    /**
     * Environment identifier
     */
    readonly environmentId?: string;
}
export interface GetEnvironmentProps {
    /**
     * Relative path to config file. Defaults to './ddk.json'
     */
    readonly configPath?: string;
    /**
     * Environment identifier.
     */
    readonly environmentId?: string;
}
export declare class Configurator {
    static getEnvConfig(props: GetEnvConfigProps): EnvironmentConfiguration;
    static getTags(props: GetTagsProps): {
        [key: string]: string;
    };
    static getEnvironment(props: GetEnvironmentProps): cdk.Environment;
    static getConfig(props: GetConfigProps): Configuration | undefined;
    readonly config: Configuration;
    readonly environmentId?: string;
    constructor(scope: constructs.Construct, config: string | Configuration, environmentId?: string);
    tagConstruct(scope: constructs.Construct, tags: {
        [key: string]: string;
    }): void;
    getConfigAttribute(attribute: string): any;
}
export {};
