import { Model, ModelStatic, DataType as SequelizeDataTypeInterface, DataTypes as SequelizeDataTypes } from 'sequelize'; import { ColumnMetadata, IDbConfig, IEntitySchemaOptions, IParsedQuery } from '../types'; type SequelizeModelController = ModelStatic>; export declare class SequelizerAdaptor { private sequelize; private modelCache; constructor(dbConfig: IDbConfig); define(modelName: string, attributes: ColumnMetadata[], _options?: IEntitySchemaOptions): SequelizeModelController; defineRelation(sourceModelName: string, targetModelName: string, type: 'hasMany' | 'hasOne' | 'belongsTo', relations: { targetKey: string; sourceKey: string; }[], propertyKey: string): void; private formatAttributes; executeSelect(query: IParsedQuery): Promise<{ data: object[]; count?: number; }>; rawQuery(query: string, params: Record): Promise<{ data: unknown[]; }>; private getCachedModel; buildSequelizeQuery(query: IParsedQuery): any; private buildSelect; private buildOrderBy; private buildWhere; private buildCondition; private isBooleanFunction; private buildExpression; private buildCountExpression; private expressionToSql; private countToSql; private functionToSql; private arithmeticToSql; private hasNavigationPath; private buildFunctionExpression; private buildInclude; } export { SequelizeDataTypeInterface, SequelizeDataTypes, SequelizeModelController };