import 'reflect-metadata';
import { Pool } from 'mysql2/promise';
export declare class RelationshipManager {
    private pool;
    constructor(pool: Pool);
    /**
     * Load a ManyToOne relationship
     */
    loadManyToOne<T>(entity: any, propertyKey: string, relationMetadata: any, targetEntityClass: new () => T): Promise<T | null>;
    /**
     * Load a OneToMany relationship
     */
    loadOneToMany<T>(entity: any, propertyKey: string, relationMetadata: any, targetEntityClass: new () => T): Promise<T[]>;
    /**
     * Load a ManyToMany relationship
     */
    loadManyToMany<T>(entity: any, propertyKey: string, relationMetadata: any, targetEntityClass: new () => T): Promise<T[]>;
    /**
     * Load a OneToOne relationship
     */
    loadOneToOne<T>(entity: any, propertyKey: string, relationMetadata: any, targetEntityClass: new () => T): Promise<T | null>;
    /**
     * Map database row to entity instance
     */
    private mapRowToEntity;
}
//# sourceMappingURL=RelationshipManager.d.ts.map