import { EncodingOption } from 'node:fs'; interface ProcessOption { cwd?: string; verbose?: boolean; shell?: boolean | string; } declare function Process(pieces: TemplateStringsArray | string[], args: any[], { cwd, verbose, shell }?: ProcessOption): Promise; declare class ProcessResult { readonly code: number | null; readonly signal: string | null; readonly stdout: string; readonly stderr: string; readonly combined: string; constructor({ code, signal, stdout, stderr, combined }: { code: number | null; signal: string | null; stdout: string; stderr: string; combined: string; }); } declare function $(pieces: TemplateStringsArray, ...args: any[]): Promise; declare namespace $ { var prompt: string; var shell: boolean; var verbose: boolean; } declare function cd(dir: string): void; declare function pwd(): string; declare function ls(dir?: string): string[]; declare function readTextFile(filename: string, encode?: EncodingOption): string | Buffer; declare function writeTextFile(filename: string, content: string, encode?: EncodingOption): void; declare function sleep(ms: number): Promise; declare enum ValueType { String = "string", Number = "number", Boolean = "boolean", Array = "string[]" } interface Parameter { name: string; type: ValueType; required: boolean; } interface Option { name: string; type: ValueType; required: boolean; description: string; } interface Command { name: string; default: boolean; options: Option[]; parameters: Parameter[]; description: string; } declare class Optc { private readonly scriptPath; private readonly breadc; private commands; constructor(scriptPath: string, option: { name: string; version: string; description?: string; }); getRawCommands(): Command[]; setupCommands(module: Record, commands: Command[]): void; run(args: string[]): Promise; } declare function makeOptc(script: string): Promise; declare function bootstrap(script: string, ...args: string[]): Promise; export { $, Process, ProcessResult, bootstrap, cd, ls, makeOptc, pwd, readTextFile, sleep, writeTextFile };