/// declare type SeedFunction = () => number; interface RadamsaOptions { [key: string]: any; output_file?: string; meta_output_file?: string; count?: number; seed?: number | SeedFunction; mutations?: Array; patterns?: Array; generators?: Array; recursive?: boolean; seek?: number; truncate?: boolean; delay?: number; checksums?: number; hash?: string; use_external_radamsa?: boolean; } declare class Sinkdweller { private DEFAULT_OPTIONS; private options; /** * Create a new Sinkdweller shim around the Radamsa fuzzer. * * @param opts Options to pass radamsa executable. */ constructor(opts?: RadamsaOptions); /** * Fuzz input asynchronously. * * @param input String or buffer to feed Radamsa. * @param callback callback to fire upon Radamsa completion. */ fuzz(input: string | Buffer, callback: any): void; /** * Fuzz input asynchronously with a promisified async function. * * @param input String or buffer to feed Radamsa. * @returns a promise containing an error or the fuzzed string|Buffer. */ fuzzAsync(input: string | Buffer): Promise; /** * Fuzz input synchronously, waiting for Radamsa. * * @param input String or buffer to feed Radamsa. * @returns fuzzed input in the type originally input. */ fuzzSync(input: string | Buffer): string | Buffer; /** * Sets flags for radamsa options. * * @param opts Options object. */ setFlags(opts: RadamsaOptions): void; /** * Set a seed function or number. * * @param seed_or_generator number or seed function */ setSeed(seed_or_generator: number | SeedFunction): void; /** * Asychronously spawn Radamsa. * * @param input String or buffer to push to Radamsa STDIN. * @param callback Callback to send data to. * @param options Radamsa option flags. */ protected spawnRadamsa(input: string | Buffer, callback: any, options?: RadamsaOptions): void; /** * Synchronously spawn radamsa. * * @param input Input string or buffer to radamsa STDIN * @param options Raw radamsa options. */ protected spawnRadamsaSync(input: string | Buffer, options?: RadamsaOptions): Buffer; /** * Get the correct platform-specific radamsa executable to use. * * @param use_external Use a radamsa on $PATH. */ protected getRadamsaExecutable(use_external?: boolean): string; /** * Generate Radamsa command line arguments from the options array. * * @param options Radamsa options array. */ protected generateRadamsaFlags(options: RadamsaOptions): Array; } export = Sinkdweller;