File: /var/www/design.system/node_modules/@rushstack/terminal/lib/TerminalTransform.d.ts
import { TerminalWritable, type ITerminalWritableOptions } from './TerminalWritable';
/**
* Constructor options for {@link TerminalTransform}.
*
* @public
*/
export interface ITerminalTransformOptions extends ITerminalWritableOptions {
/**
* The target `TerminalWritable` that the `TerminalTransform` will write its
* output to.
*/
destination: TerminalWritable;
/**
* Prevents the {@link TerminalTransform.destination} object from being
* closed automatically when the transform is closed.
*
* @remarks
* When a transform is closed, normally it will automatically close its destination
* `TerminalWritable` object. There are two ways to prevent that: either by setting
* `preventDestinationAutoclose` to `true` for the transform, or by setting
* {@link TerminalWritable.preventAutoclose} to `true` for the `destination` object.
*/
preventDestinationAutoclose?: boolean;
}
/**
* The abstract base class for {@link TerminalWritable} objects that receive an input,
* transform it somehow, and then write the output to another `TerminalWritable`.
*
* @remarks
*
* The `TerminalTransform` and {@link SplitterTransform} base classes formalize the idea
* of modeling data flow as a directed acyclic graph of reusable transforms, whose
* final outputs are `TerminalWritable` objects.
*
* The design is based loosely on the `WritableStream` and `TransformStream` classes from
* the system {@link https://developer.mozilla.org/en-US/docs/Web/API/Streams_API/Concepts
* | Streams API}, except that instead of asynchronous byte streams, the `TerminalWritable`
* system synchronously transmits human readable messages intended to be rendered on a
* text console or log file.
*
* The main feature of the `TerminalTransform` class is its {@link TerminalTransform.destination}
* property, which tracks the next link in the graph.
*
* @public
*/
export declare abstract class TerminalTransform extends TerminalWritable {
/** {@inheritDoc ITerminalTransformOptions.destination} */
readonly destination: TerminalWritable;
/** {@inheritDoc ITerminalTransformOptions.preventDestinationAutoclose} */
readonly preventDestinationAutoclose: boolean;
constructor(options: ITerminalTransformOptions);
/** @override */
protected onClose(): void;
/**
* The default implementation of {@link TerminalTransform.onClose} calls this
* method, which closes the {@link TerminalTransform.destination} if appropriate.
*
* @remarks
* The destination will not be closed if its {@link TerminalWritable.preventAutoclose}
* property is `true`. The destination will not be closed if
* {@link ITerminalTransformOptions.preventDestinationAutoclose}
* is `true`.
*
* @sealed
*/
protected autocloseDestination(): void;
}
//# sourceMappingURL=TerminalTransform.d.ts.map