import * as Promise from 'bluebird'; /** Options for generating an initial binding.gyp file. */ export interface BindingConfig { /** Directory where the binding.gyp will be stored. */ basePath: string; /** Absolute path to generated auto.gypi to include in default target. */ outputPath: string; /** Absolute path to generated auto-top.gypi to include at top level. */ outputTopPath: string; /** List of absolute paths to C/C++ source files to compile. */ sourceList: string[]; } /** General options for generating gypi files. */ export interface GenerateOptions { /** Absolute path to autogypi.json. */ configPath: string; /** Absolute path to auto.gypi to generate. */ outputPath: string; /** Absolute path to auto-top.gypi to generate. */ outputTopPath: string; } /** Format of autogypi.json files published in Node.js modules. */ export interface AutogypiConfig { /** List of required Node.js modules. */ dependencies?: string[]; /** Additional gypi files to include inside relevant targets. */ includes?: string[]; /** Additional gypi files to include at top level. */ topIncludes?: string[]; /** Path to auto.gypi to generate. */ output?: string; /** Path to auto-top.gypi to generate. */ outputTop?: string; } /** Save pretty-printed JSON object to a file. */ export declare function writeJson(outputPath: string, json: any, name?: string, header?: string): Promise<{}>; /** Write auto.gypi and auto-top.gypi files according to config. * @param config Contents of autogypi.json. */ export declare function generate(opts: GenerateOptions, config: AutogypiConfig): Promise<{}[]>; /** Return an object with contents for an initial binding.gyp file. */ export declare function initGyp(opts: BindingConfig): any;