import { type ExecFileOptionsWithStringEncoding, type ExecFileSyncOptionsWithStringEncoding, type PromiseWithChild, } from 'node:child_process'; /** Converts a `URL` or path to a path. __Not available in browsers.__ @example ``` import path from 'node:path'; import {toPath} from 'unicorn-magic'; // `cwd` can be `URL` or a path string. const getUnicornPath = cwd => path.join(toPath(cwd), 'unicorn'); ``` */ export function toPath(urlOrPath: URL | string): string; /** Finds the root directory of the given path. __Not available in browsers.__ On Unix-based systems, the root is always `'/'`. On Windows, the root varies and includes the drive letter (e.g., `'C:\\'`). This function operates purely on paths and does not interact with the file system. @param path - The path or URL to check. @returns The root directory of the path. @example ``` import {rootDirectory} from 'unicorn-magic'; console.log(rootDirectory('/Users/x/y/z')); //=> '/' console.log(rootDirectory('C:\\Users\\x\\y\\z')); //=> 'C:\\' ``` */ export function rootDirectory(path: string | URL): string; /** Creates an iterable for traversing from a given start path up to the root directory. __Not available in browsers.__ This function operates purely on paths and does not interact with the file system. @param startPath - The starting path. Can be relative. @returns An iterable that iterates over each parent directory up to the root. Tip: To stop iteration before reaching the root, use a `break` statement within a conditional check. @example ``` import {traversePathUp} from 'unicorn-magic'; for (const directory of traversePathUp('/Users/x/y/z')) { console.log(directory); //=> '/Users/x/y/z' //=> '/Users/x/y' //=> '/Users/x' //=> '/Users' //=> '/' } ``` */ export function traversePathUp(startPath: string | URL): Iterable; /** Executes a file. Same as the built-in `execFile` but with: - Promise API - 10 MB `maxBuffer` instead of 1 MB @example ``` import {execFile} from 'unicorn-magic'; console.log(await execFile('ls', ['-l'])); ``` __Not available in browsers.__ */ export function execFile( file: string, arguments_: readonly string[], options?: ExecFileOptionsWithStringEncoding ): PromiseWithChild<{ stdout: string; stderr: string; }>; /** Executes a file synchronously. Same as the built-in `execFileSync` but with: - String output instead of buffer (same as `execFile`) - Does not output `stderr` to the terminal by default (same as `execFile`) - 10 MB `maxBuffer` instead of 1 MB @example ``` import {execFileSync} from 'unicorn-magic'; console.log(execFileSync('ls', ['-l'])); ``` __Not available in browsers.__ */ export function execFileSync( file: string, arguments_?: readonly string[], options?: ExecFileSyncOptionsWithStringEncoding ): string; export * from './default.js';