import { SelectQueryBuilder } from 'typeorm'; import { ColumnMetadata } from 'typeorm/metadata/ColumnMetadata'; type Join = K extends string ? P extends string ? `${K}${'' extends P ? '' : '.'}${P | `(${P}` | `${P})`}` : never : never; type Prev = [never, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, ...0[]]; type UnwrapPromise = T extends Promise ? UnwrapPromise : T; type UnwrapArray = T extends Array ? UnwrapArray : T; export type Column = [D] extends [never] ? never : T extends Record ? { [K in keyof T]-?: K extends string ? T[K] extends Date ? `${K}` : T[K] extends Array ? `${K}` | Join, Prev[D]>> : T[K] extends Promise ? U extends Array ? `${K}` | Join, Prev[D]>> : `${K}` | Join, Prev[D]>> : `${K}` | Join> : never; }[Extract] : ''; export type RelationColumn = Extract, { [K in Column]: K extends `${infer R}.${string}` ? R : never; }[Column]>; export type Order = [Column, 'ASC' | 'DESC']; export type SortBy = Order[]; export declare function isEntityKey(entityColumns: Column[], column: string): column is Column; export declare const positiveNumberOrDefault: (value: number | undefined, defaultValue: number, minValue?: 0 | 1) => number; export type ColumnProperties = { propertyPath?: string; propertyName: string; isNested: boolean; column: string; }; export declare function getPropertiesByColumnName(column: string): ColumnProperties; export declare function extractVirtualProperty(qb: SelectQueryBuilder, columnProperties: ColumnProperties): { isVirtualProperty: boolean; query?: ColumnMetadata['query']; }; export declare function includesAllPrimaryKeyColumns(qb: SelectQueryBuilder, propertyPath: string[]): boolean; export declare function hasColumnWithPropertyPath(qb: SelectQueryBuilder, columnProperties: ColumnProperties): boolean; export declare function checkIsRelation(qb: SelectQueryBuilder, propertyPath: string): boolean; export declare function checkIsEmbedded(qb: SelectQueryBuilder, propertyPath: string): boolean; export declare function checkIsArray(qb: SelectQueryBuilder, propertyName: string): boolean; export declare function fixColumnAlias(properties: ColumnProperties, alias: string, isRelation?: boolean, isVirtualProperty?: boolean, isEmbedded?: boolean, query?: ColumnMetadata['query']): string; export declare function getQueryUrlComponents(path: string): { queryOrigin: string; queryPath: string; }; export declare function isISODate(str: string): boolean; export {};