/// <reference types="node" />
import * as cp from "child_process";
import { RunOptions } from "./run";
export declare type Dictionary<T> = {
    [key: string]: T;
};
export declare type ArgumentsScalarTypes = undefined | boolean | number | string | Array<string | number>;
export declare type ArgumentTypes = ArgumentsScalarTypes | Dictionary<ArgumentsScalarTypes>;
export interface CommonWIXOptions extends RunOptions {
    /** Extension assembly or "class, assembly". */
    ext?: string | string[];
    /** Suppress all warnings (true) or a specific message ID. */
    suppressWarning?: boolean | number | number[];
    /** Verbose output. */
    verbose?: boolean;
    /** Treat all warnings or a specific message ID as an error. */
    warningAsError?: boolean | number | number[];
}
export declare function addArgument(args: string[], arg: string, value: ArgumentTypes): void;
export declare function addFixedArgument(args: string[], arg: string, value: undefined | string | number | boolean | Array<string | number>): void;
export declare function addMapArgument(args: string[], arg: string, value: undefined | string | number | Array<string | number>): void;
export declare function addPathArgument(args: string[], arg: string, value: undefined | string | string[]): Promise<void>;
export declare function addFixedPathArgument(args: string[], arg: string, value: undefined | string | string[]): Promise<void>;
export declare function addPathFile(args: string[], file: undefined | string | string[]): Promise<void>;
export declare function addCommonArguments(args: string[], options: CommonWIXOptions): void;
export declare function ensurePaths(path?: string | string[]): Promise<string[]>;
export declare function winepath(...srcs: string[]): Promise<string[]>;
export declare function undef(val: any): val is undefined;
export declare function isWineEnv(): any;
export interface SpawnResult {
    stdout: string;
    stderr: string;
}
export declare function spawn(command: string, args: string[], options?: cp.SpawnOptions): Promise<SpawnResult>;
