import type { AwsSamTemplate } from "../../../aws/SamTemplate/AwsSamTemplate";
import type { Maybe } from "../../../common/Maybe";
import type { AxiosInstance } from 'axios';
import type { Dict } from "../../Common";
import type { Project } from "../../Types";
import type { ErrorMapping, IdentityToken } from "../common";
import { ServiceClientBase } from "../ServiceClientBase";
import type { IntegrationsData, NestedStacksSupport, TransformationOutput } from "./Types";
export interface CompilerOptions {
    axios?: AxiosInstance;
    errorMapping?: ErrorMapping;
}
export interface CompilationOptions<TMultiOutputSupport extends Maybe<NestedStacksSupport> = undefined> {
    configSet?: Dict<string>;
    configMap?: Dict<string>;
    ignoreMissingParams?: boolean;
    nestedStacksSupport?: TMultiOutputSupport;
    globalEnvironment?: Record<string, string>;
    integrations?: IntegrationsData;
    mockIntegrationData?: boolean;
}
export declare class RemoteCompiler extends ServiceClientBase {
    #private;
    constructor(getToken: () => Promise<IdentityToken>, endpoint: string, { axios, errorMapping }?: CompilerOptions);
    compileToAwsSamTemplate<TMultiOutputSupport extends Maybe<NestedStacksSupport> = undefined>(project: Readonly<Project>, { configSet, configMap, ignoreMissingParams, nestedStacksSupport, globalEnvironment, integrations, mockIntegrationData, }?: CompilationOptions<TMultiOutputSupport>): Promise<TransformationOutput<AwsSamTemplate, TMultiOutputSupport>>;
    compileToTerraformTemplate<TMultiOutputSupport extends Maybe<NestedStacksSupport> = undefined>(project: Readonly<Project>, { configSet, configMap, ignoreMissingParams, nestedStacksSupport, globalEnvironment, integrations, mockIntegrationData, }?: CompilationOptions<TMultiOutputSupport>): Promise<string>;
}
