import { type BootstrapConfig, CrudRepository } from '@citrineos/base'; import type { Attributes, FindAndCountOptions } from 'sequelize'; import { type Model, type Sequelize } from 'sequelize-typescript'; import { type ILogObj, Logger } from 'tslog'; export declare class SequelizeRepository> extends CrudRepository { protected s: Sequelize; protected namespace: string; protected logger: Logger; constructor(config: BootstrapConfig, namespace: string, logger?: Logger, sequelizeInstance?: Sequelize); readByKey(tenantId: number, key: string | number, namespace?: string): Promise; readAllByQuery(tenantId: number, query: object, namespace?: string): Promise; readAllBySqlString(tenantId: number, sqlString: string, _namespace?: string): Promise; readNextValue(tenantId: number, columnName: string, query?: object, startValue?: number, namespace?: string): Promise; existsByKey(tenantId: number, key: string, namespace?: string): Promise; existByQuery(tenantId: number, query: object, namespace?: string): Promise; findAndCount(tenantId: number, options: Omit>, 'group'>, namespace?: string): Promise<{ rows: T[]; count: number; }>; protected _create(tenantId: number, value: T, _namespace?: string): Promise; protected _bulkCreate(tenantId: number, values: T[], namespace?: string): Promise; protected _createByKey(tenantId: number, value: T, key: string, namespace?: string): Promise; protected _readOrCreateByQuery(tenantId: number, query: object, namespace?: string): Promise<[T, boolean]>; protected _updateByKey(tenantId: number, value: Partial, key: string, namespace?: string): Promise; protected _updateAllByQuery(tenantId: number, value: Partial, query: object, namespace?: string): Promise; protected _deleteByKey(tenantId: number, key: string, namespace?: string): Promise; protected _deleteAllByQuery(tenantId: number, query: object, namespace?: string): Promise; }