/** * Caterpillar supports piping to anything that supports this interface. * Which includes: * - {@link Transform Caterpillar Transforms} * - [Deno Writer Streams](https://doc.deno.land/https/github.com/denoland/deno/releases/latest/download/lib.deno.d.ts#Deno.Writer), e.g. * - [Deno.stdout](https://doc.deno.land/https/github.com/denoland/deno/releases/latest/download/lib.deno.d.ts#Deno.stdout) * - [Node.js Writable Streams](https://nodejs.org/dist/latest-v14.x/docs/api/stream.html#stream_writable_streams), e.g. * - [process.stdout](https://nodejs.org/dist/latest-v14.x/docs/api/process.html#process_process_stdout) * - [fs.createWriteStream](https://nodejs.org/dist/latest-v14.x/docs/api/fs.html#fs_fs_createwritestream_path_options) * - [WhatWG Writable Streams](https://developer.mozilla.org/en-US/docs/Web/API/WritableStream) */ export interface Pipeable { write(chunk: any): any; end?(cb?: () => void): void; close?(): Promise | void; } /** * Caterpillar Transform Class. * Provides the methods needed to provide a pipable Caterpillar Transform. * Such that all you need to do is write your {@link Transform.format} method. * It can pipe to anything that provides a {@link Pipeable.write} method. * @example [Writing a Custom Transform](https://repl.it/@balupton/caterpillar-custom-transform) */ export declare class Transform implements Pipeable { /** Where is this Transform piping to? */ private pipes; /** * Format the received log entry representation. * Your transformer should extend this. */ format(message: any): any; /** Pipe future log entries into a caterpillar transform or a stream. */ pipe(to: T): T; /** Maintain a write queue such that multiple Deno writes do not stall */ private writer; /** Write to the child pipes. */ write(chunk: any): Promise; /** Close the child pipes. */ close(): Promise; end(cb?: () => void): void; } //# sourceMappingURL=transform.d.ts.map