declare namespace util {
    const PATTERN_PARENTHESIS: string;
    function loadPlugins<T = unknown>(plugins: string | unknown[], map?: AnyObject): T[];
    function replaceAll(source: string, valueOf: (name: string) => string, opening?: string, closing?: string): string;
    function concatString(values: string[] | string | undefined, newline?: string): string;
    function spliceString(source: string, startIndex: number, endIndex: number, content: string, pattern?: RegExp): string;
    function spliceMatch(source: string, match: RegExpExecArray, content: string, pattern?: RegExp): string;
    function splitEnclosing(value: string, pattern?: string | RegExp, options?: { trim?: boolean; start?: number; startWith?: number; count?: number } | boolean | number, opening?: string, closing?: string): string[];
    function trimQuote(value: string): string;
    function wrapQuote(value: string, quote?: string): string;
    function appendSuffix(filename: string, value: string, separator?: string): string;
    function getIndent(value: string, spaces?: number): string;
    function getNewline(value: string): string;
    function getHashData(value: string): [string, number];
    function hasValue(target: string | string[] | undefined, ...values: string[]): boolean;
    function getModuleName(err: unknown): string | undefined;
    function removeInternalProperties<T extends object>(value: T, retaining?: string[]): T;
    function isObject<T extends object>(value: unknown): value is T;
    function isPlainObject<T = PlainObject>(value: unknown): value is T;
}

export = util;