import { DataTypes, Model } from 'sequelize';
import type { ModelAttributes } from "sequelize";
import type IBaseModel from './IBaseModel';
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): void;
}
//# sourceMappingURL=BaseModel.d.ts.map