import { type TargetInfo } from "../target";
export interface StaticLibraryArchiver {
    tool: string;
    argsPrefix: string[];
}
export declare function selectStaticLibraryArchiver(options: {
    compiler: string;
    targetInfo: TargetInfo;
    hasLlvmAr?: boolean;
}): StaticLibraryArchiver;
export declare class CodeGenerator {
    private moduleManager;
    constructor();
    compileModule(modulePath: string, options: {
        output: string;
        cCompiler: string;
        target: "c";
        targetTriple?: string;
        sysroot?: string;
        extern: string[];
        includePaths?: string[];
        libraryPaths?: string[];
        libraries?: string[];
        defines?: string[];
        emitC?: boolean;
        skipCodegen?: boolean;
        skipCCompiler?: boolean;
        debugGc?: boolean;
        debugParallelism?: boolean;
        debugAsyncAwait?: boolean;
        release?: boolean;
        optimize?: "0" | "1" | "2" | "3";
        allocator?: "mimalloc" | "libc";
        sanitize?: "address" | "leak" | "thread";
        debugSymbols?: boolean;
        strip?: boolean;
        static?: boolean;
        shared?: boolean;
        staticLibrary?: boolean;
        cflags?: string;
        emccEnvironment?: "web" | "node";
    }): void;
}
