import { CreationOptional, DataTypes, InferAttributes, InferCreationAttributes } from 'sequelize'; import type { LiteralUnion } from 'type-fest'; import { TenantModel } from '../tenant-model'; export declare class UsageRecord extends TenantModel, InferCreationAttributes> { id: CreationOptional; livemode: boolean; instance_did?: string; billed: boolean; timestamp: number; quantity: number; subscription_item_id: string; metadata: Record; created_at: CreationOptional; updated_at: CreationOptional; static readonly GENESIS_ATTRIBUTES: { id: { type: DataTypes.StringDataType; primaryKey: boolean; allowNull: boolean; defaultValue: (size?: number) => string; }; livemode: { type: DataTypes.AbstractDataTypeConstructor; allowNull: boolean; }; timestamp: { type: DataTypes.IntegerDataTypeConstructor; allowNull: boolean; }; quantity: { type: DataTypes.BigIntDataTypeConstructor; allowNull: boolean; }; subscription_item_id: { type: DataTypes.StringDataType; allowNull: boolean; }; metadata: { type: DataTypes.AbstractDataTypeConstructor; 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 associate(models: any): void; static getSummary({ id, start, end, method, dryRun, billed, searchBilled, }: { id: string; start: number; end: number; method: LiteralUnion<'sum' | 'last_during_period' | 'max' | 'last_ever', string>; dryRun: boolean; billed?: boolean; searchBilled?: boolean; }): Promise; } export type TUsageRecord = InferAttributes;