import { WhereBuilderContract } from "./where-builder-contract"; import { TypeWhere } from "../core/utils"; import { WhereBaseBuilder } from "./where-base-builder"; import { ColumnParams } from "../core/column-params"; /** * TODO: Verificar possibilidade de dar suporte para ao invês de passar uma coluna * em formato string arbritaria utilizar keyof para permitir string com o nome das * propriedades, o que seria mais eficiente do que utilizar expression que teriam * que ser resolvidas em tempo de execução com manipulação de string e * ainda assim garantiria uma validação de nomes de porpriedades do typescript * assim como o que temos com expression hoje. * Teriamos que verificar se a refatoração de propriedades cobre keyof * link: https://stackoverflow.com/questions/50949905 */ /** * WhereBuilder */ export declare class WhereBuilder extends WhereBaseBuilder, WhereBuilder> implements WhereBuilderContract { protected _getInstance(): WhereBuilder; protected _create(typeT: new () => T, alias: string): WhereBuilder; protected getColumnParams(expression: TypeWhere): ColumnParams; }