export type Os = "macos" | "linux" | "windows" | "unknown";
export type Arch = "x86_64" | "arm64" | "unknown";
export declare const TARGETS: readonly ["python-x86_64-linux", "python-x86_64-windows", "python-x86_64-macos", "python-arm64-macos", "python-arm64-linux", "node-x86_64-linux", "node-x86_64-windows", "node-x86_64-macos", "node-arm64-macos", "node-arm64-linux", "node-universal", "js-universal", "wasm-unknown-unknown"];
export type Target = typeof TARGETS[number];
export declare const archFromTarget: (target: Target) => Arch;
export declare const osFromTarget: (target: Target) => Os;
export declare const QPC_DIR = ".qpace";
export declare const QPC_CONFIG_FILENAME = ".qpace.json";
export declare enum FileTag {
    QPC_PYTHON_WHEEL = "qpc_python_wheel"
}
export interface Config {
    [key: string]: any;
    noDeadCode?: boolean;
    rust?: RustConfig;
    py?: PythonConfig;
    node?: NodeConfig;
    web?: WebConfig;
    js?: JsConfig;
    emit?: boolean;
    outDir?: string;
    include?: string[];
    exclude?: string[];
    install?: boolean;
    test?: boolean;
}
export type RustConfig = Record<string, any> & {
    qpaceCoreCrate?: string;
};
export type PythonConfig = Record<string, any> & {
    package?: string | {
        name: string;
        version?: string;
        homepage?: string;
        repository?: string;
        author?: {
            name: string;
            email?: string;
        }[];
        keywords?: string[];
    };
    qpacePackage?: string;
};
export type NodePackageManager = "auto" | "npm" | "yarn" | "pnpm" | "bun";
export type NodeConfig = Record<string, any> & {};
export type WebConfig = Record<string, any> & {};
export type JsConfig = Record<string, any> & {
    package?: string | {
        name: string;
        version?: string;
        description?: string;
        homepage?: string;
        author?: string;
        repository?: {
            type?: string;
            url?: string;
        };
        keywords?: string[];
    };
    packageManager?: NodePackageManager;
    qpacePackage?: string;
};
export declare const tryGetPythonPackageName: (config: PythonConfig | undefined) => string | undefined;
export declare const tryGetJsPackageName: (config: JsConfig | undefined) => string | undefined;
export declare const getDefaultConfig: () => Config;
export declare const getInitConfig: () => Config;
export declare const mergeConfigs: (config: Config, newConfig: Config) => Config;
//# sourceMappingURL=config.d.ts.map