import { Sequelize } from "sequelize"; import type { ModelDefined, ModelStatic } from "sequelize/types/model"; import type { F } from "ts-toolbelt"; import type { Revision, RevisionChange } from "./models.js"; import type { SequelizeRevisionOptions } from "./options.js"; export declare class SequelizeRevision { private sequelize; private options; private documentIdAttribute; private documentIdsAttribute; private createdAtAttribute; private updatedAtAttribute; private failHard; constructor(sequelize: Sequelize, options?: F.Narrow); defineModels(): O["enableRevisionChangeModel"] extends true ? [ModelStatic>, ModelStatic>] : [ModelStatic>]; trackRevision(model: ModelDefined, options?: { exclude?: string[]; }): O["enableMigration"] extends true ? Promise : void; /** * Throw exceptions when the user identifier from asyncLocalStorage is not set or if the * revisionAttribute was not loaded on the model. */ enableFailHard(): void; private addHooks; private getRevisionAttributes; private getRevisionChangeAttributes; private addRevisionAttribute; private addRevisionColumn; private createBeforeHook; private checkRequiredFields; private getVersions; private createAfterHook; private checkContinuationKey; private calcDiff; } export type { Revision, RevisionChange, SequelizeRevisionOptions }; //# sourceMappingURL=index.d.ts.map