///
import { ReadStream } from 'fs';
import { Logger } from './logger';
import { NexeOptions } from './options';
import { NexeTarget } from './target';
import { Bundle } from './fs/bundle';
import { File } from 'resolve-dependencies';
declare type StringReplacer = (match: string) => string;
export interface NexeFile {
filename: string;
absPath: string;
contents: string | Buffer;
}
export { NexeOptions };
export declare class NexeError extends Error {
constructor(m: string);
}
export declare class NexeCompiler {
options: NexeOptions;
/**
* Epoch of when compilation started
*/
private start;
private compileStep;
log: Logger;
/**
* Copy of process.env
*/
env: {
[x: string]: string | undefined;
};
/**
* Virtual FileSystem
*/
bundle: Bundle;
/**
* Root directory for the source of the current build
*/
src: string;
/**
* In memory files that are being manipulated by the compiler
*/
files: NexeFile[];
/**
* Standalone pieces of code run before the application entrypoint
*/
shims: string[];
/**
* The last shim (defaults to "require('module').runMain()")
*/
startup: string;
/**
* The main entrypoint filename for your application - eg. node mainFile.js
*/
entrypoint: string | undefined;
/**
* Not used
*/
targets: NexeTarget[];
/**
* Current target of the compiler
*/
target: NexeTarget;
/**
* Output filename (-o myapp.exe)
*/
output: string;
/**
* Flag to indicate whether or notstdin was used for input
*/
stdinUsed: boolean;
/**
* Path to the configure script
*/
configureScript: string;
/**
* The file path of node binary
*/
nodeSrcBinPath: string;
/**
* Remote asset path if available
*/
remoteAsset: string;
constructor(options: NexeOptions);
addResource(absoluteFileName: string, content?: Buffer | string | File): Promise;
readFileAsync(file: string): Promise;
writeFileAsync(file: string, contents: string | Buffer): Promise;
replaceInFileAsync(file: string, replace: string | RegExp, value: string | StringReplacer): Promise;
setFileContentsAsync(file: string, contents: string | Buffer): Promise;
quit(error?: any): Promise;
assertBuild(): void;
getNodeExecutableLocation(target?: NexeTarget): string;
private _runBuildCommandAsync;
private _configureAsync;
build(): Promise;
private _shouldCompileBinaryAsync;
compileAsync(target: NexeTarget): Promise;
code(): string;
private _assembleDeliverable;
}