import { DataTypes, Model } from 'sequelize';
import type { ModelAttributes } from "sequelize";
import type IBaseModel from './IBaseModel';
import { ModelOptions } from '@/types/BaseModelTypes';
export default class BaseModel extends Model implements IBaseModel {
    id?: number;
    /**
     * Sets common model attributes
     * @returns
     */
    static getCommonAttributes(defaultAttributes: boolean): {
        createdById: {
            type: DataTypes.IntegerDataType;
            comment: string;
        };
        updatedById: {
            type: DataTypes.IntegerDataType;
            comment: string;
        };
        isActive: {
            type: DataTypes.AbstractDataType;
            comment: string;
            allowNull: boolean;
            defaultValue: boolean;
        };
    } | null;
    static getCommonAssociations(): void;
    /**
    *
    * @param {ModelAttributes} fields table columns
    * @param {string} tableName  name of the table
    * @param {string} schema this will overwrite the default schema
    * @param {boolean} paranoid paranoid option. defaults to true
    * @param {boolean} defaultAttributes need to inherit default attributes. defaults to true
    */
    static initialize(fields: ModelAttributes, tableName: string, schema?: string, paranoid?: boolean, defaultAttributes?: boolean, comment?: string): void;
    /**
     *
     * @param {ModelAttributes} fields table columns
     * @param {string} options  Model Options
     */
    static initialize(fields: ModelAttributes, options: ModelOptions): void;
}
//# sourceMappingURL=BaseModel.d.ts.map