import { FindOperator, FindOptionsWhere } from 'typeorm'; /** * Parses a dot-notation path and returns the path segments * * @example * parseNestedPath('author.profile.bio') // ['author', 'profile', 'bio'] * parseNestedPath('name') // ['name'] */ export declare function parseNestedPath(path: string): string[]; /** * Checks if a path is nested (contains a dot) * * @example * isNestedPath('author.id') // true * isNestedPath('name') // false */ export declare function isNestedPath(path: string): boolean; /** * Converts a dot-notation path and value to a nested object structure * * @example * buildNestedWhere('author.id', 'user-123') * // { author: { id: 'user-123' } } * * buildNestedWhere('author.profile.bio', 'Hello') * // { author: { profile: { bio: 'Hello' } } } */ export declare function buildNestedWhere(path: string, value: T | FindOperator): FindOptionsWhere; /** * Extracts the relation path from a nested field path (excludes the final field) * * @example * getRelationPath('author.profile.bio') // 'author.profile' * getRelationPath('author.id') // 'author' * getRelationPath('name') // null */ export declare function getRelationPath(path: string): string | null; /** * Converts a relation path to TypeORM relations object * * @example * buildRelationsObject('author') // { author: true } * buildRelationsObject('author.profile') // { author: { profile: true } } */ export declare function buildRelationsObject(relationPath: string): Record; /** * Deep merges two objects, combining nested properties * Used to merge relation objects and where conditions * * @example * deepMerge({ a: { b: 1 } }, { a: { c: 2 } }) * // { a: { b: 1, c: 2 } } */ export declare function deepMerge>(target: T, source: Record): T; /** * Gets the first segment (relation name) from a nested path * * @example * getFirstSegment('author.profile.bio') // 'author' * getFirstSegment('name') // 'name' */ export declare function getFirstSegment(path: string): string; /** * Gets the remaining path after the first segment * * @example * getRestOfPath('author.profile.bio') // 'profile.bio' * getRestOfPath('author.id') // 'id' * getRestOfPath('name') // null */ export declare function getRestOfPath(path: string): string | null;