import { sep, dirname, join, parse, relative, resolve } from 'path'; import { chdir, cwd, env, version } from 'process'; import { platform, homedir } from 'os'; import { AsyncFS } from './fs_async'; import { NonAsyncFs } from './fs_non_async'; import { StreamFS } from './fs_stream'; export { AsyncFS }; export interface SystemPath { sep: typeof sep; dirname: typeof dirname; join: typeof join; parse: typeof parse; relative: typeof relative; resolve: typeof resolve; } export interface SystemProcess { chdir: typeof chdir; cwd: typeof cwd; env: typeof env; version: typeof version; } export interface SystemOS { homedir: typeof homedir; platform: typeof platform; } export interface SystemRequire { resolve: RequireResolve; } export interface System { fs: AsyncFS & NonAsyncFs & StreamFS; path: SystemPath; process: SystemProcess; os: SystemOS; require: SystemRequire; } export declare function createSystem({ fs, path, process, os, }?: Partial): System;