import type { RelationsParseOutput } from 'rapiq';
import type { ObjectLiteral, SelectQueryBuilder } from 'typeorm';
import type { QueryRelationsApplyOptions, QueryRelationsApplyOutput } from './type';
/**
 * Apply parsed include/relation parameter data on the db query.
 *
 * @param query
 * @param data
 * @param options
 */
export declare function applyQueryRelationsParseOutput<T extends ObjectLiteral = ObjectLiteral>(query: SelectQueryBuilder<T>, data: RelationsParseOutput, options?: QueryRelationsApplyOptions<T>): QueryRelationsApplyOutput;
/**
 * Apply raw include/relations parameter data on the db query.
 *
 * @param query
 * @param data
 * @param options
 */
export declare function applyQueryRelations<T extends ObjectLiteral = ObjectLiteral>(query: SelectQueryBuilder<T>, data: unknown, options?: QueryRelationsApplyOptions<T>): QueryRelationsApplyOutput;
/**
 * Apply raw include/relations parameter data on the db query.
 *
 * @param query
 * @param data
 * @param options
 */
export declare function applyRelations<T extends ObjectLiteral = ObjectLiteral>(query: SelectQueryBuilder<T>, data: unknown, options?: QueryRelationsApplyOptions<T>): QueryRelationsApplyOutput;
