///
import type { Abortable } from 'node:events';
import type * as fs from 'node:fs';
import type { CreateReadStreamOptions, CreateWriteStreamOptions } from 'node:fs/promises';
import type { Callback } from '../utils.js';
import type { FileHandle } from './promises.js';
import { Readable, Writable } from 'readable-stream';
interface FSImplementation {
open?: (...args: unknown[]) => unknown;
close?: (...args: unknown[]) => unknown;
}
interface StreamOptions extends Abortable {
flags?: string;
encoding?: BufferEncoding;
fd?: number | FileHandle;
mode?: number;
autoClose?: boolean;
emitClose?: boolean;
start?: number;
highWaterMark?: number;
}
/**
* This type is from node:fs but not exported.
* @hidden
*/
export interface ReadStreamOptions extends StreamOptions {
fs?: FSImplementation & {
read: (...args: unknown[]) => unknown;
};
end?: number;
}
/**
* This type is from node:fs but not exported.
* @hidden
*/
export interface WriteStreamOptions extends StreamOptions {
flush?: boolean;
fs?: FSImplementation & {
write: (...args: unknown[]) => unknown;
writev?: (...args: unknown[]) => unknown;
};
}
/**
* A ReadStream implementation that wraps an underlying global ReadableStream.
*/
export declare class ReadStream extends Readable implements fs.ReadStream {
pending: boolean;
private _path;
private _bytesRead;
private reader?;
private ready;
constructor(opts: CreateReadStreamOptions | undefined, handleOrPromise: FileHandle | Promise);
_read(): Promise;
close(callback?: Callback<[void]>): void;
get path(): string;
get bytesRead(): number;
wrap(oldStream: NodeJS.ReadableStream): this;
}
/**
* A WriteStream implementation that wraps an underlying global WritableStream.
*/
export declare class WriteStream extends Writable implements fs.WriteStream {
pending: boolean;
private _path;
private _bytesWritten;
private writer?;
private ready;
constructor(opts: CreateWriteStreamOptions | undefined, handleOrPromise: FileHandle | Promise);
_write(chunk: any, encoding: BufferEncoding | 'buffer', callback: (error?: Error | null) => void): Promise;
_final(callback: (error?: Error | null) => void): Promise;
close(callback?: Callback<[void]>): void;
get path(): string;
get bytesWritten(): number;
}
export {};