/** * Internal utility functions used across the library */ import type { PropertyPath, PropertyName } from "../types.js"; /** * Get the string tag of a value */ export declare function getTag(value: unknown): string; /** * Check if value is object-like (not null and typeof object) */ export declare function isObjectLike(value: unknown): value is object; /** * Check if value is a plain object */ export declare function isPlainObject(value: unknown): value is Record; /** * Check if value is an array-like object */ export declare function isArrayLike(value: unknown): value is ArrayLike; /** * Convert value to string */ export declare function toString(value: unknown): string; /** * Convert property path to array of keys */ export declare function toPath(path: PropertyPath): PropertyName[]; /** * Get nested property value */ export declare function getValue(object: unknown, path: PropertyPath, defaultValue?: T): T | undefined; /** * Set nested property value */ export declare function setValue(object: Record, path: PropertyPath, value: unknown): void; /** * Check if object has property at path */ export declare function hasPath(object: unknown, path: PropertyPath): boolean; /** * Create a function that gets a property value */ export declare function property(path: PropertyPath): (object: unknown) => T | undefined; /** * Create a predicate function that checks if objects match partial properties */ export declare function matches(source: Partial): (object: T) => boolean; /** * Create a predicate function that checks if objects have matching property values */ export declare function matchesProperty(path: PropertyPath, srcValue: unknown): (object: T) => boolean; /** * Deep equality comparison */ export declare function isEqual(a: unknown, b: unknown): boolean; /** * Create a shallow clone of a value */ export declare function clone(value: T): T; /** * Get all property names (enumerable and non-enumerable) */ export declare function getAllKeys(object: object): string[]; /** * Check if value is a valid array index */ export declare function isIndex(value: unknown, length?: number): value is number; /** * Convert iteratee shorthand to function */ export declare function iteratee(func?: ((value: T, index?: number, collection?: readonly T[]) => R) | PropertyPath | Partial | null): (value: T, index?: number, collection?: readonly T[]) => R; /** * Identity function */ export declare function identity(value: T): T; /** * Noop function */ export declare function noop(): void; /** * Constant function */ export declare function constant(value: T): () => T; /** * Check if running in Node.js environment */ export declare function isNode(): boolean;