import { ComposeSpecification, DefinitionsService } from './docker-compose-types';
export declare const LunaSecStackEnvironments: readonly ["dev", "demo", "tests"];
export declare type LunaSecStackEnvironment = typeof LunaSecStackEnvironments[number];
declare type LunaSecService = 'localstack' | 'localstack-proxy' | 'lunasec-cli' | 'secure-frame-iframe' | 'application-front-end' | 'application-back-end' | 'tokenizer-backend' | 'integration-test';
interface ComposeService {
    name: string;
    config: DefinitionsService | null;
}
export declare class LunaSecStackDockerCompose {
    env: LunaSecStackEnvironment;
    localBuild: boolean;
    version: string;
    constructor(env: LunaSecStackEnvironment, stackVersion: string, localBuild: boolean);
    dockerImage(name: string): {
        image: string;
    };
    dockerfileTarget(dockerfile: string, target: string): DefinitionsService;
    baseServiceConfig(name: LunaSecService, excludeEnv?: boolean): DefinitionsService;
    localstack(): {
        name: "localstack";
        config: {
            image: string;
            environment: string[];
            volumes: string[];
            healthcheck: {
                test: string[];
                timeout: string;
                interval: string;
                retries: number;
            };
            deploy?: ({
                mode?: string | undefined;
                endpoint_mode?: string | undefined;
                replicas?: number | undefined;
                labels?: import("./docker-compose-types").ListOrDict | undefined;
                rollback_config?: {
                    parallelism?: number | undefined;
                    delay?: string | undefined;
                    failure_action?: string | undefined;
                    monitor?: string | undefined;
                    max_failure_ratio?: number | undefined;
                    order?: "start-first" | "stop-first" | undefined;
                } | undefined;
                update_config?: {
                    parallelism?: number | undefined;
                    delay?: string | undefined;
                    failure_action?: string | undefined;
                    monitor?: string | undefined;
                    max_failure_ratio?: number | undefined;
                    order?: "start-first" | "stop-first" | undefined;
                } | undefined;
                resources?: {
                    limits?: {
                        cpus?: string | number | undefined;
                        memory?: string | undefined;
                    } | undefined;
                    reservations?: {
                        cpus?: string | number | undefined;
                        memory?: string | undefined;
                        generic_resources?: import("./docker-compose-types").DefinitionsGenericResources | undefined;
                        devices?: import("./docker-compose-types").DefinitionsDevices | undefined;
                    } | undefined;
                } | undefined;
                restart_policy?: {
                    condition?: string | undefined;
                    delay?: string | undefined;
                    max_attempts?: number | undefined;
                    window?: string | undefined;
                } | undefined;
                placement?: {
                    constraints?: string[] | undefined;
                    preferences?: {
                        spread?: string | undefined;
                    }[] | undefined;
                    max_replicas_per_node?: number | undefined;
                } | undefined;
            } & {
                mode?: string | undefined;
                endpoint_mode?: string | undefined;
                replicas?: number | undefined;
                labels?: import("./docker-compose-types").ListOrDict | undefined;
                rollback_config?: {
                    parallelism?: number | undefined;
                    delay?: string | undefined;
                    failure_action?: string | undefined;
                    monitor?: string | undefined;
                    max_failure_ratio?: number | undefined;
                    order?: "start-first" | "stop-first" | undefined;
                } | undefined;
                update_config?: {
                    parallelism?: number | undefined;
                    delay?: string | undefined;
                    failure_action?: string | undefined;
                    monitor?: string | undefined;
                    max_failure_ratio?: number | undefined;
                    order?: "start-first" | "stop-first" | undefined;
                } | undefined;
                resources?: {
                    limits?: {
                        cpus?: string | number | undefined;
                        memory?: string | undefined;
                    } | undefined;
                    reservations?: {
                        cpus?: string | number | undefined;
                        memory?: string | undefined;
                        generic_resources?: import("./docker-compose-types").DefinitionsGenericResources | undefined;
                        devices?: import("./docker-compose-types").DefinitionsDevices | undefined;
                    } | undefined;
                } | undefined;
                restart_policy?: {
                    condition?: string | undefined;
                    delay?: string | undefined;
                    max_attempts?: number | undefined;
                    window?: string | undefined;
                } | undefined;
                placement?: {
                    constraints?: string[] | undefined;
                    preferences?: {
                        spread?: string | undefined;
                    }[] | undefined;
                    max_replicas_per_node?: number | undefined;
                } | undefined;
            }) | undefined;
            build?: string | {
                context?: string | undefined;
                dockerfile?: string | undefined;
                args?: import("./docker-compose-types").ListOrDict | undefined;
                labels?: import("./docker-compose-types").ListOrDict | undefined;
                cache_from?: string[] | undefined;
                network?: string | undefined;
                target?: string | undefined;
                shm_size?: string | number | undefined;
                extra_hosts?: import("./docker-compose-types").ListOrDict | undefined;
                isolation?: string | undefined;
            } | undefined;
            blkio_config?: {
                device_read_bps?: import("./docker-compose-types").BlkioLimit[] | undefined;
                device_read_iops?: import("./docker-compose-types").BlkioLimit[] | undefined;
                device_write_bps?: import("./docker-compose-types").BlkioLimit[] | undefined;
                device_write_iops?: import("./docker-compose-types").BlkioLimit[] | undefined;
                weight?: number | undefined;
                weight_device?: import("./docker-compose-types").BlkioWeight[] | undefined;
            } | undefined;
            cap_add?: string[] | undefined;
            cap_drop?: string[] | undefined;
            cgroup_parent?: string | undefined;
            command?: string | string[] | undefined;
            configs?: (string | {
                source?: string | undefined;
                target?: string | undefined;
                uid?: string | undefined;
                gid?: string | undefined;
                mode?: number | undefined;
            })[] | undefined;
            container_name?: string | undefined;
            cpu_count?: number | undefined;
            cpu_percent?: number | undefined;
            cpu_shares?: string | number | undefined;
            cpu_quota?: string | number | undefined;
            cpu_period?: string | number | undefined;
            cpu_rt_period?: string | number | undefined;
            cpu_rt_runtime?: string | number | undefined;
            cpus?: string | number | undefined;
            cpuset?: string | undefined;
            credential_spec?: {
                config?: string | undefined;
                file?: string | undefined;
                registry?: string | undefined;
            } | undefined;
            depends_on?: import("./docker-compose-types").ListOfStrings | {
                [k: string]: {
                    condition: "service_started" | "service_healthy" | "service_completed_successfully";
                };
            } | undefined;
            device_cgroup_rules?: import("./docker-compose-types").ListOfStrings | undefined;
            devices?: string[] | undefined;
            dns?: import("./docker-compose-types").StringOrList | undefined;
            dns_opt?: string[] | undefined;
            dns_search?: import("./docker-compose-types").StringOrList | undefined;
            domainname?: string | undefined;
            entrypoint?: string | string[] | undefined;
            env_file?: import("./docker-compose-types").StringOrList | undefined;
            expose?: (string | number)[] | undefined;
            extends?: string | {
                service: string;
                file?: string | undefined;
            } | undefined;
            external_links?: string[] | undefined;
            extra_hosts?: import("./docker-compose-types").ListOrDict | undefined;
            group_add?: (string | number)[] | undefined;
            hostname?: string | undefined;
            init?: boolean | undefined;
            ipc?: string | undefined;
            isolation?: string | undefined;
            labels?: import("./docker-compose-types").ListOrDict | undefined;
            links?: string[] | undefined;
            logging?: {
                driver?: string | undefined;
                options?: {
                    [k: string]: string | number | null;
                } | undefined;
            } | undefined;
            mac_address?: string | undefined;
            mem_limit?: string | number | undefined;
            mem_reservation?: string | number | undefined;
            mem_swappiness?: number | undefined;
            memswap_limit?: string | number | undefined;
            network_mode?: string | undefined;
            networks?: import("./docker-compose-types").ListOfStrings | {
                [k: string]: {
                    aliases?: import("./docker-compose-types").ListOfStrings | undefined;
                    ipv4_address?: string | undefined;
                    ipv6_address?: string | undefined;
                    link_local_ips?: import("./docker-compose-types").ListOfStrings | undefined;
                    priority?: number | undefined;
                } | null;
            } | undefined;
            oom_kill_disable?: boolean | undefined;
            oom_score_adj?: number | undefined;
            pid?: string | null | undefined;
            pids_limit?: string | number | undefined;
            platform?: string | undefined;
            ports?: (string | number | {
                mode?: string | undefined;
                host_ip?: string | undefined;
                target?: number | undefined;
                published?: number | undefined;
                protocol?: string | undefined;
            })[] | undefined;
            privileged?: boolean | undefined;
            profiles?: import("./docker-compose-types").ListOfStrings | undefined;
            pull_policy?: "always" | "never" | "if_not_present" | "build" | "missing" | undefined;
            read_only?: boolean | undefined;
            restart?: string | undefined;
            runtime?: string | undefined;
            scale?: number | undefined;
            security_opt?: string[] | undefined;
            shm_size?: string | number | undefined;
            secrets?: (string | {
                source?: string | undefined;
                target?: string | undefined;
                uid?: string | undefined;
                gid?: string | undefined;
                mode?: number | undefined;
            })[] | undefined;
            sysctls?: import("./docker-compose-types").ListOrDict | undefined;
            stdin_open?: boolean | undefined;
            stop_grace_period?: string | undefined;
            stop_signal?: string | undefined;
            storage_opt?: {
                [k: string]: unknown;
            } | undefined;
            tmpfs?: import("./docker-compose-types").StringOrList | undefined;
            tty?: boolean | undefined;
            ulimits?: {
                [k: string]: number | {
                    hard: number;
                    soft: number;
                };
            } | undefined;
            user?: string | undefined;
            userns_mode?: string | undefined;
            volumes_from?: string[] | undefined;
            working_dir?: string | undefined;
        };
    };
    localstackProxy(): ComposeService;
    secureFrameIFrameService(): ComposeService;
    applicationFrontEnd(): ComposeService;
    applicationBackEnd(): ComposeService;
    lunasecCli(): ComposeService;
    tokenizerBackEnd(): ComposeService;
    integrationTest(): ComposeService;
    getStackServices(): ComposeService[] | null;
    getProject(): ComposeSpecification;
    write(dir: string): string;
}
export {};
//# sourceMappingURL=lunasec-stack.d.ts.map