import type { Class } from 'type-fest'; import type { Model, ModelStatic } from '../model'; import type { Sequelize } from '../sequelize'; import type { OmitConstructors } from '../utils/types.js'; import type { Association, AssociationOptions, CompositeForeignKeysOptions, ForeignKeyOptions, NormalizedAssociationOptions } from './base'; import type { ThroughOptions } from './belongs-to-many.js'; export declare function checkNamingCollision(source: ModelStatic, associationName: string): void; /** * Mixin (inject) association methods to model prototype * * @private * * @param association instance * @param mixinTargetPrototype Model prototype * @param methods Method names to inject * @param aliases Mapping between model and association method names */ export declare function mixinMethods>(association: A, mixinTargetPrototype: Model, methods: Array, aliases?: Aliases): void; /** * Used to prevent users from instantiating Associations themselves. * Instantiating associations is not safe as it mutates the Model object. * * @private do not expose outside sequelize */ export declare const AssociationSecret: unique symbol; export declare function assertAssociationUnique(type: Class, source: ModelStatic, target: ModelStatic, options: NormalizedAssociationOptions, parent: Association | undefined): void; export declare function assertAssociationModelIsDefined(model: ModelStatic): void; export type AssociationStatic = { new (...arguments_: any[]): T; } & OmitConstructors; export declare function defineAssociation, CleanOptions extends NormalizedAssociationOptions>(type: AssociationStatic, source: ModelStatic, target: ModelStatic, options: RawOptions, parent: Association | undefined, normalizeOptions: (type: AssociationStatic, options: RawOptions, source: ModelStatic, target: ModelStatic) => CleanOptions, construct: (opts: CleanOptions) => T): T; export type NormalizeBaseAssociationOptions = Omit & { as: string; name: { singular: string; plural: string; }; hooks: boolean; foreignKey: ForeignKeyOptions; }; export declare function normalizeInverseAssociation(inverse: T | string | undefined): T | undefined; export declare function normalizeBaseAssociationOptions>(associationType: AssociationStatic, options: T, source: ModelStatic, target: ModelStatic): NormalizeBaseAssociationOptions; export declare function normalizeForeignKeyOptions(foreignKey: AssociationOptions['foreignKey']): ForeignKeyOptions; export declare function normalizeCompositeForeignKeyOptions(foreignKey: AssociationOptions['foreignKey']): CompositeForeignKeysOptions[]; export type MaybeForwardedModelStatic = ModelStatic | ((sequelize: Sequelize) => ModelStatic); export declare function getForwardedModel(model: MaybeForwardedModelStatic, sequelize: Sequelize): ModelStatic; export declare function isThroughOptions(val: any): val is ThroughOptions; //# sourceMappingURL=helpers.d.ts.map