import { TestFileProvider } from './classes.testfileprovider.js'; import * as plugins from './plugins.js'; export interface ITapCleanupTarget { registerCleanup: (fn: () => Promise | void) => void; } export declare class TapNodeTools { private smartshellInstance; private smartnetworkInstance; testFileProvider: TestFileProvider; constructor(tapArg: ITapCleanupTarget); private qenv; getQenv(): Promise; getEnvVarOnDemand(envVarNameArg: string): Promise; runCommand(commandArg: string): Promise; createHttpsCert(commonName?: string, allowSelfSigned?: boolean): Promise<{ key: string; cert: string; }>; /** * create and return a smartmongo instance */ createSmartmongo(): Promise; /** * create and return a smartstorage instance */ createSmartStorage(): Promise; private getSmartNetwork; /** * Find a single free port on the local machine. */ findFreePort(optionsArg?: { startPort?: number; endPort?: number; randomize?: boolean; exclude?: number[]; }): Promise; /** * Find multiple distinct free ports on the local machine. * Each found port is automatically excluded from subsequent searches. */ findFreePorts(countArg: number, optionsArg?: { startPort?: number; endPort?: number; randomize?: boolean; exclude?: number[]; }): Promise; /** * Find a range of consecutive free ports on the local machine. * All returned ports are sequential (e.g., [4000, 4001, 4002]). */ findFreePortRange(countArg: number, optionsArg?: { startPort?: number; endPort?: number; exclude?: number[]; }): Promise; /** * Clean up long-lived resources (e.g. the SmartNetwork Rust bridge process) * so the Node.js event loop can drain naturally. */ cleanup(): Promise; }