/// import * as EventEmitter from 'events'; export declare type ModuleType = 'prod' | 'dev' | 'optional'; export declare type RebuildMode = 'sequential' | 'parallel'; export interface RebuildOptions { buildPath: string; electronVersion: string; arch?: string; extraModules?: string[]; onlyModules?: string[] | null; force?: boolean; headerURL?: string; types?: ModuleType[]; mode?: RebuildMode; debug?: boolean; useCache?: boolean; cachePath?: string; } export declare type HashTree = { [path: string]: string | HashTree; }; export interface RebuilderOptions extends RebuildOptions { lifecycle: EventEmitter; } export declare type RebuilderResult = Promise & { lifecycle: EventEmitter; }; export declare type RebuildFunctionWithOptions = (options: RebuildOptions) => RebuilderResult; export declare type RebuildFunctionWithArgs = (buildPath: string, electronVersion: string, arch?: string, extraModules?: string[], force?: boolean, headerURL?: string, types?: ModuleType[], mode?: RebuildMode, onlyModules?: string[] | null, debug?: boolean) => RebuilderResult; export declare type RebuildFunction = RebuildFunctionWithArgs & RebuildFunctionWithOptions; export declare const rebuild: RebuildFunction; export declare function createOptions(buildPath: string, electronVersion: string, arch: string, extraModules: string[], force: boolean, headerURL: string, types: ModuleType[], mode: RebuildMode, onlyModules: string[] | null, debug: boolean): RebuildOptions; export declare function rebuildNativeModules(electronVersion: string, modulePath: string, whichModule: string | undefined, _headersDir: string | null | undefined, arch: string | undefined, _command: string, _ignoreDevDeps?: boolean, _ignoreOptDeps?: boolean, _verbose?: boolean): RebuilderResult;