import { BuildMode } from './buildMode';
export type ArrayOrSingle<T> = T | T[];
export type BuildConfigurationDefaulted = {
    name: string;
    dev: boolean;
    os: typeof process.platform;
    arch: typeof process.arch;
    runtime: string;
    runtimeVersion: string;
    toolchainFile: string | null;
    CMakeOptions?: {
        name: string;
        value: string;
    }[];
    addonSubdirectory: string;
    additionalDefines: string[];
};
export type BuildConfiguration = Partial<BuildConfigurationDefaulted>;
export declare function defaultBuildConfiguration(config: BuildConfiguration): BuildConfigurationDefaulted;
export type BuildOptionsDefaulted = {
    configurations: BuildConfiguration[];
    packageDirectory: string;
    projectName: string;
    targetDirectory: string;
    stagingDirectory: string;
    cmakeToUse: string;
    generatorToUse: string;
    generatorBinary: string;
    buildType: string;
    globalCMakeOptions?: {
        name: string;
        value: string;
    }[];
    nodeAPI?: string;
};
export type OverrideConfig = {
    match: {
        os?: ArrayOrSingle<typeof process.platform>;
        arch?: ArrayOrSingle<typeof process.arch>;
        runtime?: ArrayOrSingle<string>;
        runtimeVersion?: ArrayOrSingle<string>;
    };
    addDefines: ArrayOrSingle<string>;
};
export type BuildOptions = Partial<BuildOptionsDefaulted>;
export declare function defaultBuildOptions(configs: BuildOptions, buildmode: BuildMode): Promise<BuildOptionsDefaulted>;
//# sourceMappingURL=lib.d.ts.map