export declare function isNil(val: any): boolean; export declare function isNilOrEmpty(val: any): boolean; export declare function isString(val: any): boolean; export declare function isNumericString(val: string): boolean; export declare function isStringOrNil(val: any): boolean; export declare function isStringAndNotNilOrEmpty(val: any): boolean; export declare function isObject(val: any): boolean; export declare function isMap(val: any): boolean; export declare function isObjectAndNotNilOrEmpty(val: any): boolean; export declare function hasPropertyChanged(val: any, oldVal: any): boolean; export declare function hasStringPropertyChanged(val: string | null | undefined, oldVal: string): boolean; export declare function hasStringPropertyChangedAndNotNil(val: string | null | undefined, oldVal: string): boolean; export declare function getEnumValues(enumeration: any): unknown[]; export declare function createId(prefix?: string): string; export declare function objectNaiveDeepEquals(obj1: Record, obj2: Record): boolean; export declare function getFromObjectPath(path: string, dataObj: any, fallback?: string): any; export declare function deepClone(obj: any): any; declare type ObjectPropertyNameAndValueTuples = [string, string] | [string, true] | [string, false] | [string, null] | [string, undefined] | [string, number]; export declare function convertAttributeStringValuesToValue(stringValue: string): string | number | boolean | null | undefined; export declare function convertStringPropValuePairsToTuple(propValString: string): ObjectPropertyNameAndValueTuples[]; export declare function anyOrAllPropertiesPass(obj: any, propValuePairs: string, anyOrAll: 'any' | 'all'): boolean; export declare function allPropertiesPass(obj: any, propValuePairs: string): boolean; export declare function anyPropertiesPass(obj: any, propValuePairs: string): boolean; /** * This function takes an object (e.g. { ohai: 'hello', count: 2 }) or an Element * (e.g.

i am an html element

). * * It also takes a string that represents a potential property or attribute on the * object or element (e.g. "ohai" or "count"). * * Lastly, it takes a potential value for the potential property or attribute * (e.g. "hello" or 2). * * If the object/element has the string as a property or attribute and the value * of the property/attribute equals the expected value, it returns true. If not, * it returns false. * * This code is the brains behind our "key:value" strings found in Clarity Motion. * (e.g. { hidden: true, onlyIf: "responsive:false", animation: ...}) * * @export * @param {*} objectOrElement * @param {string} propertyOrAttributeName * @param {(string | number | boolean | null | undefined)} expectedValue * @returns {boolean} */ export declare function doesPropertyPass(objectOrElement: any, propertyOrAttributeName: string, expectedValue: string | number | boolean | null | undefined): boolean; export declare function allAre(testFn: (val: T) => boolean, ...itemsToCheck: T[]): boolean; export declare function allAreDefined(...items: U[]): boolean; export declare function mergeObjects(...objs: object[]): object; export {};