import { type EntityKey, type EntityProperty, type MetadataStorage, type RawQueryFragmentSymbol, type EntityName, } from '@mikro-orm/core'; import type { ICriteriaNode, ICriteriaNodeProcessOptions, IQueryBuilder } from '../typings.js'; /** * Helper for working with deeply nested where/orderBy/having criteria. Uses composite pattern to build tree from the payload. * Auto-joins relations and converts payload from { books: { publisher: { name: '...' } } } to { 'publisher_alias.name': '...' } * @internal */ export declare class CriteriaNode implements ICriteriaNode { protected readonly metadata: MetadataStorage; readonly entityName: EntityName; readonly parent?: ICriteriaNode | undefined; readonly key?: (EntityKey | RawQueryFragmentSymbol) | undefined; readonly validate: boolean; readonly strict: boolean; payload: any; prop?: EntityProperty; index?: number; constructor( metadata: MetadataStorage, entityName: EntityName, parent?: ICriteriaNode | undefined, key?: (EntityKey | RawQueryFragmentSymbol) | undefined, validate?: boolean, strict?: boolean, ); process(qb: IQueryBuilder, options?: ICriteriaNodeProcessOptions): any; unwrap(): any; shouldInline(payload: any): boolean; willAutoJoin(qb: IQueryBuilder, alias?: string, options?: ICriteriaNodeProcessOptions): boolean; shouldRename(payload: any): boolean; renameFieldToPK(qb: IQueryBuilder, ownerAlias?: string): string; getPath(opts?: { addIndex?: boolean; parentPath?: string }): string; private isPivotJoin; getPivotPath(path: string): string; aliased(field: string, alias?: string): string; isStrict(): boolean; }