import type { CoreSD, JIArray, JIValue } from "../core/interfaces.js";
import type { IntAny, IntObject, RawFunction } from "../core/internal.js";
export declare function cloneJI<JIType>(inJson: JIType): JIType;
export declare const hasSdChildren: (item: IntObject) => boolean;
export declare const copyNonObjects: (inputObj: IntObject) => IntObject;
export declare const isInString: (searchItem: Array<string> | string | number, inputString: string) => boolean;
export declare function findCoreIds(sdCores: CoreSD[], sdId: number | number[]): CoreSD[];
export declare const uniqWith: (arr: JIArray, fn: RawFunction) => JIValue[];
export declare const reject: (arr: unknown[], predicate: RawFunction) => unknown[];
export declare class UUID {
    static GetNew(): string;
    static GetCompress(): string;
    static GetEmpty(compact?: boolean): string;
    static Valid(checkVal: JIValue): boolean;
    static ValidData(checkVal: JIValue): boolean;
}
export declare const getIdFromKey: (sdKey: string, coreArray: CoreSD[]) => number | undefined;
export declare const getFromCoreArray: (idOrKey: number | string, coreArray: CoreSD[]) => CoreSD | undefined;
export declare const getKeyFromId: (sdId: number, coreArray: CoreSD[]) => string | undefined;
export declare const mutableObjUpdate: (mutableRef: IntObject, newObject: IntObject) => void;
export declare const mutableArrayUpdate: (mutableArray: Array<IntAny>, newArray: Array<IntAny>) => void;
export declare const validTypeLexName: (checkVal: JIValue) => boolean;
export declare function deepFreeze<T>(obj: T): T;
