import { type IOPort } from '@flyingrobots/bijou'; import type { NodeIOOptions, ScopedNodeIO, ScopedNodeIOOptions } from './io-types.js'; export type { NodeIOOptions, NodeWriteStream, ScopedNodeIO, ScopedNodeIOOptions } from './io-types.js'; export declare class ScopedNodeIOError extends Error { constructor(root: string, requestedPath: string); } /** * Create an {@link IOPort} backed by Node.js I/O primitives. * * Wires `process.stdout` for output, `process.stdin` / `readline` for input, * and `fs` / `path` for filesystem access. Returned handles from * `rawInput`, `onResize`, and `setInterval` clean up their underlying * resources when `dispose()` is called. * * @param options - Optional runtime overrides such as a deterministic clock for tests. * @returns An {@link IOPort} bound to the current Node.js process. */ export declare function nodeIO(options?: NodeIOOptions): IOPort; /** * Create a Node.js I/O adapter whose filesystem access is constrained to a root directory. * * This wraps an {@link IOPort} and guards `readFile`, `readDir`, and `joinPath` * so app-level file access cannot escape the declared root. Hosts can also call * {@link ScopedNodeIO.resolvePath} before performing their own writes with Node's * filesystem APIs, preserving the same root boundary for output paths. * * @param options - Root path plus optional adapter overrides. * @returns An {@link ScopedNodeIO} rooted at the provided directory. */ export declare function scopedNodeIO(options: ScopedNodeIOOptions): ScopedNodeIO; //# sourceMappingURL=io.d.ts.map