import { Model, InferAttributes, InferCreationAttributes, CreationOptional, ModelStatic, NonAttribute } from "vr-migrations"; import { User } from "./user.models"; type AppealStatus = "pending" | "approved" | "rejected"; export interface BanAttributes { id?: string; userId: string; adminId: string; reason: string; bannedAt: Date; isPermanent: boolean; appealedAt?: Date; appealReason?: string; appealStatus?: AppealStatus; revokedAt?: Date; revokedBy?: string; revocationReason?: string; createdAt: Date; updatedAt: Date; user: User; admin: User; revokingAdmin?: User; } export interface BanCreationAttributes extends Omit { id?: string; } export declare class Ban extends Model, InferCreationAttributes> implements BanAttributes { id: CreationOptional; userId: string; adminId: string; reason: string; bannedAt: Date; isPermanent: boolean; appealedAt: CreationOptional; appealReason: CreationOptional; appealStatus: CreationOptional<"pending" | "approved" | "rejected" | undefined>; revokedAt: CreationOptional; revokedBy: CreationOptional; revocationReason: CreationOptional; user: NonAttribute; admin: NonAttribute; revokingAdmin?: NonAttribute; readonly createdAt: CreationOptional; readonly updatedAt: CreationOptional; static initialize(sequelize: any): void; static associate(models: Record>): void; } export type BanModel = typeof Ban; export {};