import { CreationOptional, DataTypes, InferAttributes, InferCreationAttributes, Model } from 'sequelize'; export declare class Lock extends Model, InferCreationAttributes> { id: CreationOptional; lock_at: number; release_at: number; reason?: string; created_at: CreationOptional; updated_at: CreationOptional; static readonly GENESIS_ATTRIBUTES: { id: { type: DataTypes.StringDataType; primaryKey: boolean; allowNull: boolean; }; lock_at: { type: DataTypes.IntegerDataTypeConstructor; defaultValue: number; }; release_at: { type: DataTypes.IntegerDataTypeConstructor; defaultValue: number; }; reason: { type: DataTypes.StringDataType; allowNull: boolean; }; created_at: { type: DataTypes.DateDataTypeConstructor; defaultValue: DataTypes.AbstractDataTypeConstructor; allowNull: boolean; }; updated_at: { type: DataTypes.DateDataTypeConstructor; defaultValue: DataTypes.AbstractDataTypeConstructor; allowNull: boolean; }; }; static initialize(sequelize: any): void; static acquire(id: string, releaseAt: number, reason?: string): Promise; static isLocked(id: string): Promise; static release(id: string): Promise; static associate(): void; } export type TLock = InferAttributes;