///
import type { ChecksumValue, DataSource, DbDataSource, IncrementalMatch, LogStatus, TaskAction, ViewEngine } from './squared';
import type { ExternalAsset, FileCommand, FileData, IFileThread, OutputFinalize } from './asset';
import type { BucketWebsiteOptions, CloudDatabase, CloudFeatures, CloudFunctions, CloudLogMessageType, CloudService, CloudStorage, CloudStorageDownload, CloudStorageUpload, CopyObjectOptions, DeleteObjectsOptions, UploadAssetOptions } from './cloud';
import type { BrotliCompressLevel, BufferResult, CompressFormat, CompressLevel, ReadableOptions, TryFileCompressor } from './compress';
import type { ClientConstructor, ClientDbConstructor, HostInitConfig, IAbortComponent, IClient, IClientDb, IPermission, JoinQueueOptions, PermissionReadWrite, ResumeThreadOptions, ThreadCountStat } from './core';
import type { BatchQueryResult, DB_TYPE, ErrorQueryCallback, ExecuteBatchQueryOptions, ExecuteQueryOptions, HandleFailOptions, ProcessRowsOptions, QueryResult, SQL_COMMAND } from './db';
import type { AsSourceFileOptions, ConfigOrTransformer, CustomizeOptions as CustomizeDocument, GenerateLintTableOptions, LintMessage, PluginConfig, SourceCode, SourceInput, SourceMap, SourceMapOptions, TransformAction, TransformCallback, TransformOutput, TransformResult, UpdateGradleOptions } from './document';
import type { AssetContentOptions, CheckHashOptions, ChecksumOptions, DeleteFileAddendum, FileOutput, FinalizeResult, FindAssetOptions, IHttpDiskCache, IHttpMemoryCache, ImageMimeMap, InstallData, PostFinalizeCallback, ReplaceOptions } from './filemanager';
import type { HttpAgentSettings, HttpProtocolVersion, HttpRequestClient, InternetProtocolVersion } from './http';
import type { CommandData, CropData, QualityData, ResizeData, RotateData, TransformOptions } from './image';
import type { ExecCommand, LOG_TYPE, LogArguments, LogComponent, LogDate, LogFailOptions, LogMessageOptions, LogOptions, LogProcessOptions, LogState, LogTime, LogType, LogValue, STATUS_TYPE, StatusType } from './logger';
import type { AsHashOptions, CheckSemVerOptions, CopyDirOptions, CopyDirResult, CopyFileOptions, CreateDirOptions, DeleteFileOptions, DirectoryActionType, FileActionType, FileTypeFormat, GlobDirOptions, MoveFileOptions, PackageVersionOptions, ParseFunctionOptions, PermissionOptions, PermissionType, ProtocolType, ReadBufferOptions, ReadFileCallback, ReadFileOptions, ReadHashOptions, ReadTextOptions, RemoveDirOptions, TempDirOptions, WriteFileOptions } from './module';
import type { ErrorCode, HighResolutionTime, RequestData, Settings } from './node';
import type { ApplyOptions, Aria2Options, BufferFormat, DataEncodedResult, DataObjectResult, HeadersOnCallback, HostConfig, IHttpAdapter, OpenOptions, PatchOptions, PostFileParts as PostFileParts, PostOptions, ProxySettings, PutOptions, RcloneOptions, ReadExpectType, RequestInit, StatusOnCallback } from './request';
import type { ClientModule, CloudAuthSettings, CloudModule, CloudServiceOptions, CompressModule, CompressSettings, DbCacheSettings, DbCoerceSettings, DbModule, DbSettings, DbSourceOptions, DnsLookupSettings, DocumentComponent, DocumentComponentOption, DocumentModule, HandlerSettings, HttpConnectSettings, HttpMemorySettings, ImageModule, ImportModule, LoggerFormat, LoggerFormatSettings, PoolConfig, RequestModule, RequestSettings, TaskModule, WatchModule } from './settings';
import type { Command, SpawnResult } from './task';
import type { IFileGroup, ModifiedPostFinalizeListener, SecureOptions, WatchInitResult } from './watch';
import type { SpawnOptions } from 'node:child_process';
import type { BinaryLike, HashOptions } from 'node:crypto';
import type { NoParamCallback, WriteStream } from 'node:fs';
import type { ClientRequest, OutgoingHttpHeaders } from 'node:http';
import type { LookupFunction } from 'node:net';
import type { Readable, Writable } from 'node:stream';
import type { SecureContextOptions } from 'node:tls';
import type { BrotliCompress, BrotliOptions, Gzip, ZlibOptions } from 'node:zlib';
// @ts-ignore
import type { Unit } from 'bytes';
// @ts-ignore
import type { FileTypeResult } from 'file-type';
import type * as EventEmitter from 'node:events';
// @ts-ignore
import type * as ws from 'ws';
type BufferView = Bufferable | NodeJS.ArrayBufferView;
type CpuUsage = NodeJS.CpuUsage;
declare namespace functions {
type FormatMessageArgs = [type: LogType, title: string, value: LogValue, message: unknown, options: LogMessageOptions];
interface IScopeOrigin {
host?: T;
instance?: U;
}
interface IExternalConfig {
module: T;
init(...args: unknown[]): this;
get settings(): U;
}
interface IExternalFunction> {
set extensions(values: unknown[]);
get extensions(): T[];
}
interface IWorkerConstructor {
asBuffer(data: Buffer | Uint8Array): Buffer;
}
interface ICompress extends IModule, IExternalConfig {
level: ObjectMap;
compressors: ObjectMap;
register(format: string, callback: TryFileCompressor): void;
getLevel(value: string, fallback?: number): number | undefined;
getReadable(file: string | URL | Buffer, options?: ReadableOptions): Readable;
createGzip(file: Bufferable, options?: CompressLevel): Gzip;
createBrotliCompress(file: Bufferable, options?: BrotliCompressLevel): BrotliCompress;
createWriteStreamAsGzip(file: Bufferable, output: string, options?: CompressLevel): WriteStream;
createWriteStreamAsBrotli(file: Bufferable, output: string, options?: BrotliCompressLevel): WriteStream;
intoGzipStream(output: string, options?: ZlibOptions): WriteStream;
intoBrotliStream(output: string, options?: BrotliOptions): WriteStream;
writeGzip(file: Bufferable, output: string, options?: CompressLevel): Promise;
writeBrotli(file: Bufferable, output: string, options?: CompressLevel): Promise;
tryFile(file: Bufferable, options: CompressFormat): Promise;
tryFile(file: Bufferable, output: string, options?: CompressFormat): Promise;
tryImage(file: string, options: CompressFormat): Promise;
tryImage(file: Bufferable, output: string, options?: CompressFormat): Promise;
hasPermission(type: string, options?: unknown): boolean;
set chunkSize(value: number | string | undefined);
get chunkSize(): number | undefined;
}
interface CompressConstructor extends ModuleConstructor, IWorkerConstructor {
singleton(): ICompress;
readonly prototype: ICompress;
new(module?: U): ICompress;
}
interface IImage extends IClient {
resizeData?: ResizeData | null;
cropData?: CropData | null;
rotateData?: RotateData | null;
qualityData?: QualityData | null;
methodData?: [string, unknown[]?][] | null;
opacityValue?: number;
outputType?: string;
setCommand(value: string | CommandData, outputAs?: string): void;
getCommand(): string;
parseCommand(value: string): CommandData;
parseMethod(value: string): [string, unknown[]?][] | null;
parseResize(value: string): ResizeData | null;
parseCrop(value: string): CropData | null;
parseRotate(value: string): RotateData | null;
parseQuality(value: string): QualityData | null;
parseOpacity(value: string): number;
parseWorker(command: string | CommandData, outputType?: string): CommandData | null;
using?(data: IFileThread, command: string): Promise;
get outputAs(): string;
set host(value);
get host(): T | null;
}
interface ImageConstructor extends ClientConstructor, IWorkerConstructor {
readonly MIME_JPEG: string;
readonly MIME_PNG: string;
readonly MIME_WEBP: string;
readonly MIME_SVG: string;
readonly MIME_GIF: string;
readonly MIME_BMP: string;
readonly MIME_TIFF: string;
transform(file: string, command: string, options?: W): Promise;
clamp(value: unknown, min?: number, max?: number): number;
isBinary(mime: unknown): mime is string;
toABGR(buffer: Uint8Array | Buffer): Buffer;
readonly prototype: IImage;
new(module?: U, ...args: unknown[]): IImage;
}
interface ITask extends IClient {
using?(data: IFileThread): Promise;
collect?(items: unknown[], preceding?: boolean): Promise[];
map?(tasks: Command[]): Promise[];
series?(tasks: Command[]): Promise;
parallel?(tasks: Command[]): Promise;
spawn?(task: PlainObject, callback: (result?: SpawnResult) => void): void;
execute?, X extends ExternalAsset>(manager: W, task: PlainObject, callback: (value?: unknown) => void): void;
set host(value);
get host(): T | null;
}
interface TaskConstructor extends ClientConstructor {
finalize(this: T, instance: ITask, assets: V[]): Promise;
readonly prototype: ITask;
new(module?: U, ...args: unknown[]): ITask;
}
interface IDb extends IClientDb {
setCredential(item: V): Promise;
getCredential(item: V): Y | undefined;
hasSource(source: string, ...type: number[]): boolean;
applyCommand(...items: V[]): void;
executeQuery(item: V, callback: ErrorQueryCallback): Promise;
executeQuery(item: V, sessionKey: string): Promise;
executeQuery(item: V, options?: ExecuteQueryOptions | string): Promise;
executeBatchQuery(batch: V[], callback: ErrorQueryCallback, outResult?: BatchQueryResult): Promise;
executeBatchQuery(batch: V[], sessionKey: string | undefined, outResult?: BatchQueryResult): Promise;
executeBatchQuery(batch: V[], options?: ExecuteBatchQueryOptions, outResult?: BatchQueryResult): Promise;
processRows(batch: V[], tasks: Promise[], parallel: boolean): Promise;
processRows(batch: V[], tasks: Promise[], options?: ProcessRowsOptions | boolean, outResult?: BatchQueryResult): Promise;
handleFail(err: unknown, item: V, options?: HandleFailOptions): boolean;
readTLSCert(value: unknown, cache?: boolean): string;
readTLSConfig(options: SecureContextOptions, cache?: boolean): void;
settingsOf(source: string, name: keyof Omit): unknown;
settingsOf(source: string, name: "cache", component: keyof DbCacheSettings): unknown;
settingsOf(source: string, name: "coerce", component: keyof DbCoerceSettings): unknown;
settingsKey(source: string, name: keyof Omit): unknown;
settingsKey(source: string, name: "cache", component: keyof DbCacheSettings): unknown;
settingsKey(source: string, name: "coerce", component: keyof DbCoerceSettings): unknown;
getPoolConfig(source: string, uuidKey?: string): Required | undefined;
get sourceType(): DB_TYPE;
get commandType(): SQL_COMMAND;
set host(value);
get host(): T | null;
/* EventEmitter */
on(event: "exec", listener: (command: ExecCommand, options?: SpawnOptions) => void): this;
on(event: "error", listener: (err: Error) => void): this;
on(event: "file:read", listener: (src: string, data: Bufferable, options?: ReadFileOptions) => void): this;
on(event: "file:write", listener: (src: string, options?: WriteFileOptions) => void): this;
on(event: "file:delete", listener: (src: string, options?: DeleteFileOptions) => void): this;
on(event: "file:copy", listener: (dest: string, options?: CopyFileOptions) => void): this;
on(event: "file:move", listener: (dest: string, options?: MoveFileOptions) => void): this;
on(event: "file:permission", listener: (src: string, type?: FileActionType) => void): this;
on(event: "dir:create", listener: (src: string, options?: CreateDirOptions) => void): this;
on(event: "dir:remove", listener: (src: string, options?: RemoveDirOptions) => void): this;
on(event: "dir:permission", listener: (src: string, type?: DirectoryActionType) => void): this;
once(event: "exec", listener: (command: ExecCommand, options?: SpawnOptions) => void): this;
once(event: "error", listener: (err: Error) => void): this;
once(event: "file:read", listener: (src: string, data: Bufferable, options?: ReadFileOptions) => void): this;
once(event: "file:write", listener: (src: string, options?: WriteFileOptions) => void): this;
once(event: "file:delete", listener: (src: string, options?: DeleteFileOptions) => void): this;
once(event: "file:copy", listener: (dest: string, options?: CopyFileOptions) => void): this;
once(event: "file:move", listener: (dest: string, options?: MoveFileOptions) => void): this;
once(event: "file:permission", listener: (src: string, type?: FileActionType) => void): this;
once(event: "dir:create", listener: (src: string, options?: CreateDirOptions) => void): this;
once(event: "dir:remove", listener: (src: string, options?: RemoveDirOptions) => void): this;
once(event: "dir:permission", listener: (src: string, type?: DirectoryActionType) => void): this;
emit(event: "exec", command: ExecCommand, options?: SpawnOptions): boolean;
emit(event: "error", err: Error): boolean;
emit(event: "file:read", src: string, data: Bufferable, options?: ReadFileOptions): boolean;
emit(event: "file:write", src: string, options?: WriteFileOptions): boolean;
emit(event: "file:delete", src: string, options?: DeleteFileOptions): boolean;
emit(event: "file:copy", dest: string, options?: CopyFileOptions): boolean;
emit(event: "file:move", dest: string, options?: MoveFileOptions): boolean;
emit(event: "file:permission", src: string, type?: FileActionType): boolean;
emit(event: "dir:create", src: string, options?: CreateDirOptions): boolean;
emit(event: "dir:remove", src: string, options?: RemoveDirOptions): boolean;
emit(event: "dir:permission", src: string, type?: DirectoryActionType): boolean;
/* EventEmitter */
on(event: "db:result", listener: (batch: V[], result: BatchQueryResult) => void): this;
on(event: "db:fail", listener: (err: unknown, item: V) => void): this;
once(event: "db:result", listener: (batch: V[], result: BatchQueryResult) => void): this;
once(event: "db:fail", listener: (err: unknown, item: V) => void): this;
emit(event: "db:result", batch: V[], result: BatchQueryResult): boolean;
emit(event: "db:fail", err: unknown, item: V): boolean;
}
interface DbConstructor extends ClientDbConstructor {
readonly HASH_ALGORITHM: string;
loadSettings(settings: Settings & { db?: DbSettings }, password?: string): boolean;
setPoolConfig(value: ObjectMap): void;
getPoolConfig(source: string): Required | undefined;
readonly prototype: IDb;
new(module?: U, database?: V[], ...args: unknown[]): IDb;
}
interface ICloud extends IClientDb {
readonly uploaded: string[];
readonly downloaded: string[];
createBucket(service: string, credential: unknown, bucket: string, acl?: unknown, options?: unknown): Promise;
createBucket(service: string, credential: unknown, bucket: string, publicRead?: boolean): Promise;
setBucketPolicy(service: string, credential: unknown, bucket: string, options: unknown): Promise;
setBucketTagging(service: string, credential: unknown, bucket: string, options: unknown): Promise;
setBucketWebsite(service: string, credential: unknown, bucket: string, options: BucketWebsiteOptions): Promise;
deleteObjects(service: string, credential: unknown, bucket: string, options: DeleteObjectsOptions): Promise;
deleteObjects(service: string, credential: unknown, bucket: string, recursive?: boolean | DeleteObjectsOptions): Promise;
copyObject(service: string, credential: unknown, bucketSource: string, keySource: string, bucket: string, key: string, options?: CopyObjectOptions): Promise;
uploadObject(service: string, credential: unknown, bucket: string, upload: CloudStorageUpload, localUri: string, beforeResolve?: (value: string) => Promise | void): Promise;
downloadObject(service: string, credential: unknown, bucket: string, download: CloudStorageDownload, beforeResolve?: (value: Bufferable | null) => Promise | void): Promise;
getStorage(action: CloudFunctions, data: CloudStorage[] | undefined): CloudStorage | undefined;
hasStorage(action: CloudFunctions, storage: CloudStorage): CloudStorageUpload | false;
getDatabaseRows(item: V, ignoreErrors: boolean, sessionKey?: string): Promise;
getDatabaseRows(item: V, sessionKey?: string): Promise;
getDatabaseBatchRows(batch: V[], ignoreErrors: boolean, sessionKey?: string): Promise;
getDatabaseBatchRows(batch: V[], sessionKey?: string): Promise;
hasCredential(feature: CloudFeatures, data: CloudService, credential?: unknown): boolean;
getCredential(item: CloudService, unused?: boolean): PlainObject;
getSettings(service: string): AnyObject | undefined;
settingsOf(service: string, name: "cache"): unknown;
settingsOf(service: string, name: "coerce", component: keyof DbCoerceSettings): unknown;
settingsOf(service: string, name: "auth", component: keyof CloudAuthSettings): unknown;
getUploadHandler(service: string, credential: unknown): FunctionReturn;
getDownloadHandler(service: string, credential: unknown): FunctionReturn;
resolveService(service: string, folder?: string): string;
set host(value);
get host(): T | null;
}
interface CloudConstructor extends ClientDbConstructor {
LOG_CLOUD_SUCCESS: LogMessageOptions;
LOG_CLOUD_FAIL: LogMessageOptions;
LOG_CLOUD_COMMAND: LogMessageOptions;
LOG_CLOUD_WARN: LogMessageOptions;
LOG_CLOUD_UPLOAD: LogMessageOptions;
LOG_CLOUD_DOWNLOAD: LogMessageOptions;
LOG_CLOUD_DELETE: LogMessageOptions;
LOG_CLOUD_DELAYED: LogMessageOptions;
finalize(this: T, instance: ICloud): Promise;
uploadAsset, X extends ExternalAsset>(state: IScopeOrigin>, file: X, options: UploadAssetOptions): Promise[];
uploadAsset, X extends ExternalAsset>(state: IScopeOrigin>, file: X, ignoreProcess: boolean): Promise[];
uploadAsset, X extends ExternalAsset>(state: IScopeOrigin>, file: X, contentType?: string | boolean | UploadAssetOptions, ignoreProcess?: boolean): Promise[];
uploadAssetSuccess, X extends ExternalAsset>(state: IScopeOrigin>, file: X, active?: boolean): (value: string) => Promise | void;
sanitizeAssets(assets: W[]): W[];
optionsLogMessage(type: CloudLogMessageType, options?: W): W;
readonly prototype: ICloud;
new(module?: U, database?: CloudDatabase[], ...args: unknown[]): ICloud;
}
interface IDocument, U extends ExternalAsset = ExternalAsset, V extends ClientModule = DocumentModule, W extends DocumentComponent = DocumentComponent, X extends DocumentComponentOption = DocumentComponentOption, Y extends ICloud = ICloud, Z extends FunctionReturn = TransformCallback> extends IClient {
Db: IDb | null;
assets: U[];
config: StandardMap;
init(assets: U[], config?: HostInitConfig): this;
customize(options?: CustomizeDocument): void;
findConfig(data: object, name: string, type?: string): PluginConfig;
loadConfig(data: object, name: string): ConfigOrTransformer | undefined;
asSourceFile(value: string, cache: boolean): unknown;
asSourceFile(value: string, options?: AsSourceFileOptions): unknown;
findVersion(name: string | string[], fallback?: string): string;
findSourceScope(uri: string, imports: ImportModule): StringMap[];
findSourceRoot(uri: string, imports?: ImportModule): string | undefined;
resolveDir(name: string, ...paths: string[]): string | undefined;
locateSourceFiles(file: U, code?: string, bundleContent?: string[]): (imports?: ImportModule) => SourceInput | undefined;
resolveSourceFile(file: U): (code?: string, imports?: ImportModule) => SourceInput | undefined;
resolvePackageJSONExports(uri: string, base?: string | URL): string | undefined;
tryParse(source: string, format: string, options?: PlainObject): unknown;
forDb(item: DataSource): boolean;
hasEval(name: string): boolean;
settingsOf(name: keyof W, option: keyof X): unknown;
parseTemplate(viewEngine: ViewEngine | string, template: string, data: unknown[]): Promise;
transform(type: string, code: string, format: string | string[], options?: TransformOutput & TransformAction): Promise;
abort(err: Error): void;
abort(name?: keyof W, reason?: unknown): void;
restart(): void;
using?(data: IFileThread): Promise;
setLocalUri?(file: U, replace?: boolean): void;
resolveUri?(file: U, source: string): string;
resolveUri?(file: U, source: string, trailing: string): [string, string];
resolveImports?(file: U, code: string, baseFile?: string | U): string | undefined;
replaceContent?(source: string, statement: RegExpExecArray | string, mimeType?: string): string | undefined;
addCopy?(data: FileCommand, saveAs: string, replace?: boolean): string | undefined;
writeImage?(output: OutputFinalize): boolean;
cloudInit?(state: IScopeOrigin): void;
cloudObject?(state: IScopeOrigin, file: U): boolean;
cloudUpload?(state: IScopeOrigin, file: U, url: string, active?: boolean): Promise;
cloudFinalize?(state: IScopeOrigin): Promise;
watchInit?(watch: IFileGroup, assets: U[], sanitize?: boolean): WatchInitResult | undefined;
watchModified?(watch: IFileGroup, assets?: U[], recursive?: [string, string[]][]): PostFinalizeCallback;
set dataSource(value: DataSource[]);
get dataSource(): DataSource[];
set imports(value);
get imports(): ImportModule;
get watching(): boolean;
set host(value);
get host(): T | null;
}
interface DocumentConstructor, U extends ExternalAsset = ExternalAsset, V extends ClientModule = DocumentModule, W extends DocumentComponent = DocumentComponent, X extends DocumentComponentOption = DocumentComponentOption, Y extends ICloud = ICloud> extends ClientConstructor {
finalize(this: T, instance: IDocument): Promise;
createSourceMap(code: string, remove: boolean): SourceMap;
createSourceMap(code: string, uri?: string, remove?: boolean): SourceMap;
writeSourceMap(uri: string, data: SourceCode, options?: SourceMapOptions): string | undefined;
/** @deprecated */
updateGradle(source: string, namespaces: (string | RegExp)[], value: string | string[], upgrade: boolean): string;
/** @deprecated */
updateGradle(source: string, namespaces: (string | RegExp)[], value: string | string[], options?: UpdateGradleOptions): string;
generateLintTable(messages: LintMessage[], options: GenerateLintTableOptions): LogComponent[];
cleanup?(this: T, instance: IDocument): Promise;
sanitizeAssets?(assets: U[], exclusions?: unknown[]): U[];
readonly prototype: IDocument;
new(module?: V, ...args: unknown[]): IDocument;
}
interface IWatch, U extends ExternalAsset = ExternalAsset, V extends WatchModule = WatchModule, W extends FunctionReturn = ModifiedPostFinalizeListener> extends IClient {
connectTimeout: number;
init(config?: HostInitConfig): this;
start(assets: U[], permission?: IPermission | null): void;
modified(watch: IFileGroup): Promise;
configureServer(options: SecureOptions): boolean;
setCA(value: string): boolean;
setSSLKey(value: string): boolean;
setSSLCert(value: string): boolean;
hasSecureProtocol(): boolean;
getRecursiveFiles(watch: IFileGroup): [string, string[]][];
whenModified?(assets: U[], postFinalize: PostFinalizeCallback): T;
whenModified?(assets: U[], sanitize?: boolean, postFinalize?: PostFinalizeCallback): T;
set assets(value: U[]);
get assets(): U[];
set interval(value);
get interval(): number;
set port(value);
get port(): number;
set securePort(value);
get securePort(): number;
set host(value);
get host(): T | null;
}
interface WatchConstructor, U extends ExternalAsset = ExternalAsset, V extends WatchModule = WatchModule, W extends FunctionReturn = ModifiedPostFinalizeListener> extends ClientConstructor {
createServer(port: number, active: boolean): ws.Server | null;
createServer(port: number, secure?: SecureOptions | null, active?: boolean): ws.Server | null;
shutdown(): void;
setTimeout(value: number | string): void;
checkTimeout(client: ws.WebSocket): boolean;
isConnectionError(err: unknown): boolean;
readonly prototype: IWatch;
new(module?: V): IWatch;
new(interval?: number, port?: number, securePort?: number, extensions?: unknown[]): IWatch;
}
interface IRequest extends IModule, IExternalConfig {
startTime: number;
acceptEncoding: boolean;
keepAlive: boolean | null;
readTimeout: number;
readExpect: ReadExpectType;
proxy: ProxySettings | null;
init(config?: RequestInit): this;
apply(options: ApplyOptions): this;
addDns(hostname: string, address: string, timeout: number): void;
addDns(hostname: string, address: string, family?: number | string, timeout?: number): void;
lookupDns(hostname: string): LookupFunction;
proxyOf(uri: string, localhost?: boolean): ProxySettings | undefined;
statusOn(name: number | number[], callback: StatusOnCallback): void;
statusOn(name: number | number[], globUrl: string, callback: StatusOnCallback): void;
headersOn(name: string | string[], callback: HeadersOnCallback): void;
headersOn(name: string | string[], globUrl: string, callback: HeadersOnCallback): void;
headersOf(uri: string): OutgoingHttpHeaders | undefined;
aria2c(uri: string | URL, pathname: string | URL): Promise;
aria2c(uri: string | URL, options?: Aria2Options): Promise;
rclone(uri: string | URL, pathname: string | URL): Promise;
rclone(uri: string | URL, options?: RcloneOptions): Promise;
json(uri: string | URL, options?: OpenOptions): Promise