import { BiConsumer, Consumer } from './../consumers/consumer'; import { Generator } from './../generators/generator'; import { EqualsPredicate } from './../predicates/predicates'; export declare const KEY_DEBUG = "$$DEBUG"; declare const _arrayEquals: (aLeft: T[], aRight: T[], aPredicate: EqualsPredicate) => boolean; declare const _objectEquals: (aLeft: any, aRight: any, aPredicate: EqualsPredicate) => boolean; declare const _deepEquals: (aLeft: any, aRight: any) => boolean; declare const _push: (aValue: T, aArray: T[]) => T[]; declare const _anyToString: (aValue: any) => string; declare const _objectAssign: (aKey: string, aValue: V, aObject: T) => T; declare function _cloneDeep(aValue: any): any; declare const _assertObject: (aKey: string | number | symbol, aObject: any) => T; declare const _assertArray: (aKey: string | number | symbol, aObject: any) => T[]; declare const _lastElement: (aArray: T[]) => T; declare function _toInteger(aValue: any, aDefault: number): number; declare const _UNDEFINED_TYPE: "string" | "number" | "boolean" | "symbol" | "undefined" | "object" | "function"; declare const _FUNCTION_TYPE: "string" | "number" | "boolean" | "symbol" | "undefined" | "object" | "function"; declare function _freezeDeep(aValue: any): any; declare function _random(aMin: number, aMax: number): number; /** * Constructs a getter description * * @param aGetter the getter * @return the description of the getter */ declare function _createGetter(aGetter: Generator): PropertyDescriptor; /** * Just run a callback for each element in an array * * @param aArray the array * @param aConsumer consumer callback */ declare function _forEach(aArray: T[], aConsumer: Consumer): void; /** * Run a callback for each key value pair * * @param aObject the object * @param aConsumer consumer callback */ declare function _forIn(aObject: { [key: string]: T; }, aConsumer: BiConsumer): void; /** * Run a callback for each key value pair * * @param aObject the object * @param aConsumer consumer callback */ declare function _reduceForIn(aObject: { [key: string]: T; }, aFunction: (aRes: R, aValue: T, aKey: string) => R, aInitial: R): R; export { _random as random, _arrayEquals as arrayEquals, _createGetter as createGetter, _objectEquals as objectEquals, _deepEquals as deepEquals, _freezeDeep as freezeDeep, _cloneDeep as cloneDeep, _push as arrayPush, _anyToString as anyToString, _assertArray as assertArray, _lastElement as lastElement, _assertObject as assertObject, _objectAssign as objectAssign, _toInteger as toInteger, _forEach as forEach, _forIn as forIn, _reduceForIn as reduceForIn, _UNDEFINED_TYPE as UNDEFINED_TYPE, _FUNCTION_TYPE as FUNCTION_TYPE };