import { Association, ModelStatic, Transaction } from 'sequelize'; import { Collection } from '../collection'; import Database from '../database'; import { RelationField } from '../fields/relation-field'; import { Model } from '../model'; import { CreateOptions, Filter, FindOptions } from '../repository'; export declare const transaction: (transactionInjector?: any) => (originalMethod: any, context: ClassMethodDecoratorContext) => (...args: unknown[]) => Promise; export declare abstract class RelationRepository { sourceCollection: Collection; association: Association; targetModel: ModelStatic; targetCollection: Collection; associationName: string; associationField: RelationField; sourceKeyValue: string | number; sourceInstance: Model; db: Database; constructor(sourceCollection: Collection, association: string, sourceKeyValue: string | number); get collection(): Collection; convertTk(options: any): any; convertTks(options: any): any[]; targetKey(): any; protected accessors(): import("sequelize").SingleAssociationAccessors | import("sequelize").MultiAssociationAccessors; create(options?: CreateOptions): Promise; getSourceModel(transaction?: Transaction): Promise>; protected buildQueryOptions(options: FindOptions): any; protected parseFilter(filter: Filter, options?: any): any; protected getTransaction(options: any, autoGen?: boolean): Promise; }