import { CreationOptional, DataTypes, FindOptions, InferAttributes, InferCreationAttributes } from 'sequelize'; import type { LiteralUnion } from 'type-fest'; import { TenantModel } from '../tenant-model'; import { RechargeConfig, VaultConfig } from './types'; export declare class PaymentCurrency extends TenantModel, InferCreationAttributes> { id: CreationOptional; payment_method_id: string; active: boolean; livemode: boolean; instance_did?: string; locked: boolean; is_base_currency: boolean; name: string; description: string; logo: string; symbol: string; decimal: number; maximum_precision?: number; minimum_payment_amount: string; maximum_payment_amount: string; contract?: string; metadata: Record; created_at: CreationOptional; updated_at: CreationOptional; vault_config?: VaultConfig; type: LiteralUnion<'standard' | 'credit', string>; recharge_config?: RechargeConfig; token_config?: Record | null; toJSON(): any; static readonly GENESIS_ATTRIBUTES: { id: { type: DataTypes.StringDataType; primaryKey: boolean; allowNull: boolean; defaultValue: (size?: number) => string; }; active: { type: DataTypes.AbstractDataTypeConstructor; allowNull: boolean; }; livemode: { type: DataTypes.AbstractDataTypeConstructor; allowNull: boolean; }; locked: { type: DataTypes.AbstractDataTypeConstructor; defaultValue: boolean; }; is_base_currency: { type: DataTypes.AbstractDataTypeConstructor; defaultValue: boolean; }; payment_method_id: { type: DataTypes.StringDataType; allowNull: boolean; }; name: { type: DataTypes.StringDataType; allowNull: boolean; }; description: { type: DataTypes.StringDataType; allowNull: boolean; }; logo: { type: DataTypes.StringDataType; allowNull: boolean; }; symbol: { type: DataTypes.StringDataType; allowNull: boolean; }; decimal: { type: DataTypes.NumberDataTypeConstructor; defaultValue: number; }; maximum_precision: { type: DataTypes.NumberDataTypeConstructor; allowNull: boolean; defaultValue: number; }; minimum_payment_amount: { type: DataTypes.StringDataType; defaultValue: string; }; maximum_payment_amount: { type: DataTypes.StringDataType; defaultValue: string; }; contract: { 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; }; vault_config: { type: DataTypes.AbstractDataTypeConstructor; allowNull: boolean; }; }; static initialize(sequelize: any): void; static associate(models: any): void; static findByPkOrSymbol(id: string, options?: FindOptions): Promise; isLocked(): Promise; isUsed(): Promise; static createForMeter(meter: any, paymentMethodId: string, tokenConfig?: Record, options?: { decimal?: number; }): Promise; isCredit(): boolean; isOnChainCredit(): boolean; static isCredit(currency: { type?: string | null; }): boolean; static isOnChainCredit(currency: { type?: string | null; token_config?: any; }): boolean; } export type TPaymentCurrency = InferAttributes;