/**
 * Test if the passed value is null or undefined.  This will not check string length.
 * @param value - the value to test
 * @returns {boolean}
 */
export function isEmpty(value: any): boolean;
/**
 * Test if the passed value is null, undefined, or zero length or size.
 * @param value - the value to test
 * @returns {boolean}
 */
export function isEmptyOrZeroLength(value: any): boolean;
/**
 * Test if the passed array contains any null or undefined values.
 * @param valuesList - An array of values
 * @returns {boolean}
 */
export function arrayHasEmptyValues(valuesList: any): boolean;
/**
 * Test if the passed array contains any null or undefined values.
 * @param valuesList - An array of values
 * @returns {boolean}
 */
export function arrayHasEmptyOrZeroLengthValues(valuesList: any): boolean;
/**
 * takes an array of strings and joins them with the folder separator to return a path
 * @param pathElements
 */
export function buildFolderPath(...pathElements: any[]): string;
/**
 * takes a value and checks if it is a boolean value (true/false)
 * @param value
 * @returns {boolean}
 */
export function isBoolean(value: any): boolean;
/**
 * Converts a message to an error containing the error as a message. Will always return an error if the passed in error is
 * not a message.
 * @param message
 * @returns {*}
 */
export function errorizeMessage(message: any): any;
/**
 * Strip the .hdb file extension from file names.  To keep this efficient, this will not check that the
 * parameter contains the .hdb extension.
 * @param fileName - the filename.
 * @returns {string}
 */
export function stripFileExtension(fileName: any): string;
/**
 * Takes a raw string value and casts it to the correct data type, including Object & Array, but not Dates
 * @param data
 * @returns
 */
export function autoCast(data: any): any;
export function autoCastJSON(data: any): any;
export function autoCastJSONDeep(data: any): any;
/**
 * Removes all files in a given directory path.
 * @param dirPath
 * @returns {Promise<[any]>}
 */
export function removeDir(dirPath: any): Promise<[any]>;
/**
 * Sorting function, Get oldVersion list of version directives to run during an upgrade.
 * Can be used via [<versions>].sort(compareVersions). Can also be used to just compare strictly version
 * numbers.  Returns a number less than 0 if the oldVersion is less than newVersion.
 * e.x. compareVersionsompareVersions('1.1.0', '2.0.0') will return a value less than 0.
 * @param oldVersion - As an UpgradeDirective object or just a version number as a string
 * @param newVersion - Newest version As an UpgradeDirective object or just a version number as a string
 * @returns {*}
 */
export function compareVersions(oldVersion: any, newVersion: any): any;
/**
 * Check to see if the data from one version is compatible with another. Per semver, this is only major version changes
 * @param oldVersion
 * @param newVersion
 * @returns {boolean}
 */
export function isCompatibleDataVersion(oldVersion: any, newVersion: any, checkMinor?: boolean): boolean;
/**
 * takes a raw value and replaces any forward slashes with the unicode equivalent.  if the value directly matches "." or ".." then it replaces with their unicode equivalent
 * the reason for this is to because linux does not allow forward slashes in folder names and "." & ".." are already taken
 * @param value
 * @returns {string}
 */
export function escapeRawValue(value: any): string;
/**
 * takes the value and unesacapes the unicode for any occurrance of "U+002F" and exact values of  "U+002E", "U+002EU+002E"
 * @param value
 * @returns {string}
 */
export function unescapeValue(value: any): string;
/**
 * Takes a PropertiesReader object and converts it to a string so it can be printed to a file.
 * @param propReaderObject - An object of type properties-reader containing properties stored in settings.js
 * @param comments - Object with key,value describing comments that should be placed above a variable in the settings file.
 * The key is the variable name (PROJECT_DIR) and the value will be the string comment.
 * @returns {string}
 */
export function stringifyProps(propReaderObject: any, comments: any): string;
/**
 * Creates a promisified timeout that exposes a cancel() function in case the timeout needs to be cancelled.
 * @param ms
 * @param msg - The message to resolve the promise with should it timeout
 * @returns {{promise: (Promise|Promise<any>), cancel: cancel}}
 */
export function timeoutPromise(ms: any, msg: any): {
    promise: (Promise<any> | Promise<any>);
    cancel: cancel;
};
/**
 * Checks the global databases for a schema and table
 * @param schemaName
 * @param tableName
 * @returns string returns a thrown message if schema and or table does not exist
 */
export function checkGlobalSchemaTable(schemaName: any, tableName: any): string;
export function getHomeDir(): string;
/**
 * This function will attempt to find the hdbBootProperties.file path.  IT IS SYNCHRONOUS, SO SHOULD ONLY BE
 * CALLED IN CERTAIN SITUATIONS (startup, upgrade, etc).
 */
export function getPropsFilePath(): string;
/**
 * Promisify csv parser papaparse. Once function is promisified it can be called with:
 * papaParse.parsePromise(<reject-promise-obj>, <read-stream>, <chunking-function>)
 * In the case of an error, reject promise object must be called from chunking-function, it will bubble up
 * through bind to this function.
 */
export function promisifyPapaParse(): void;
/**
 * Removes the byte order mark from a string
 * @returns a string minus any byte order marks
 * @param dataString
 */
export function removeBOM(dataString: any): string;
export function createEventPromise(eventName: any, eventEmitterObject: any, timeout_promise: any): Promise<any>;
/**
 * Checks the global schema to see if a Schema or Table exist.
 * @param schema
 * @param table
 */
export function checkSchemaTableExist(schema: any, table: any): string;
/**
 * Checks the global schema to see if a schema exist.
 * @param schema
 * @returns {string}
 */
export function checkSchemaExists(schema: any): string;
/**
 * Checks the global schema to see if a table exist.
 * @param schema
 * @param table
 * @returns {string}
 */
export function checkTableExists(schema: any, table: any): string;
/**
 * Returns the first second of the next day in seconds.
 * @returns {number}
 */
export function getStartOfTomorrowInSeconds(): number;
/**
 * Returns the key used by limits for this cycle.
 * @returns {string}
 */
export function getLimitKey(): string;
/**
 * Takes a value and checks if it is an object.
 * Note - null is considered an object but we are excluding it here.
 * @param value
 * @returns {boolean}
 */
export function isObject(value: any): boolean;
export function isNotEmptyAndHasValue(value: any): any;
/**
 * function to check if a string is a number based on the rules used by our autocaster
 * @param {string} data
 * @returns {boolean}
 */
export function autoCasterIsNumberCheck(data: string): boolean;
/**
 * Automatically adds backticks "`" to all schema elements found in an AST - the reason for this is in SQL you can surround
 * a reserved word with backticks as an escape to allow a schema element which is named the same as a reserved word to be used.
 * The issue is once alasql parses the sql the backticks are removed and we need them when we execute the final SQL.
 */
export function backtickASTSchemaItems(statement: any): void;
/**
 * Checks to see if a port is taken or not.
 * @param port
 * @returns {Promise<unknown>}
 */
export function isPortTaken(port: any): Promise<unknown>;
/**
 * Create arguments for childProcess fork
 * @param modulePath
 * @returns {*[]}
 */
export function createForkArgs(modulePath: any): any[];
/**
 * Takes a boolean string/value and casts it to a boolean
 * @param boolean
 * @returns {boolean}
 */
export function autoCastBoolean(boolean: any): boolean;
/**
 * Takes a boolean string/value and casts it to a boolean iff it is a case-insensitive
 * string matching 'true' or 'false'. Returns the argument unmodified otherwise.
 * @param value boolean|string
 * @returns any
 *
 */
export function autoCastBooleanStrict(value: any): any;
export const asyncSetTimeout: typeof import("node:timers/promises").setTimeout;
/**
 * Gets a tables hash attribute from the global schema
 */
export function getTableHashAttribute(schema: any, table: any): any;
/**
 * Checks the global schema to see if schema exists
 * @param schema
 * @returns {boolean} - returns true if schema exists
 */
export function doesSchemaExist(schema: any): boolean;
/**
 * Checks the global schema to see if schema exists
 * @param schema
 * @param table
 * @returns {boolean} - returns true if table exists
 */
export function doesTableExist(schema: any, table: any): boolean;
/**
 * Tries to stringify an object, if it cant just return that value unchanged.
 * @param value
 * @returns {any}
 */
export function stringifyObj(value: any): any;
/**
 * Converts milliseconds to a readable time, e.g. 2d 3h 12m 1s
 * @param ms
 * @returns {*}
 */
export function ms_to_time(ms: any): any;
/**
 * Change the extension of a file.
 * @param file
 * @param extension
 * @returns {string}
 */
export function changeExtension(file: any, extension: any): string;
/**
 * Checks ENV and CLI for ROOTPATH arg
 */
export function getEnvCliRootPath(): any;
export function noBootFile(): any;
export function httpRequest(options: any, data: any): Promise<any>;
/**
 * Will set default schema/database or set database to schema
 * @param req
 */
export function transformReq(req: any): void;
export function convertToMS(interval: any): number;
import { PACKAGE_ROOT } from "./packageUtils.js";
export { PACKAGE_ROOT };
