import OcapClient from '@ocap/client'; import type { JsonRpcProvider } from 'ethers'; import { CreationOptional, DataTypes, InferAttributes, InferCreationAttributes } from 'sequelize'; import Stripe from 'stripe'; import type { LiteralUnion } from 'type-fest'; import { TenantModel } from '../tenant-model'; import { AppStoreClient } from '../../integrations/app-store/client'; import { GooglePlayClient } from '../../integrations/google-play/client'; import type { PaymentMethodSettings } from './types'; export declare class PaymentMethod extends TenantModel, InferCreationAttributes> { id: CreationOptional; active: boolean; livemode: boolean; instance_did?: string; locked: boolean; type: LiteralUnion<'stripe' | 'arcblock' | 'ethereum' | 'bitcoin' | 'base' | 'app_store' | 'google_play', string>; name: string; description: string; logo: string; default_currency_id?: string; confirmation: { type: LiteralUnion<'immediate' | 'callback' | 'block', string>; block?: number; }; settings: PaymentMethodSettings; features: { recurring: boolean; refund: boolean; dispute: boolean; }; metadata: Record; created_at: CreationOptional; updated_at: CreationOptional; 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; }; type: { type: DataTypes.EnumDataType<"arcblock" | "ethereum" | "base" | "bitcoin" | "stripe">; }; name: { type: DataTypes.StringDataType; }; description: { type: DataTypes.StringDataType; }; logo: { type: DataTypes.StringDataType; }; default_currency_id: { type: DataTypes.StringDataType; allowNull: boolean; }; confirmation: { type: DataTypes.AbstractDataTypeConstructor; allowNull: boolean; }; settings: { type: DataTypes.AbstractDataTypeConstructor; allowNull: boolean; }; features: { type: DataTypes.AbstractDataTypeConstructor; 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 expand(livemode?: boolean, conditions?: Record): Promise; static encryptSettings(settings: PaymentMethodSettings): PaymentMethodSettings; static decryptSettings(settings: PaymentMethodSettings): PaymentMethodSettings; getStripeClient(): Stripe; getOcapClient(): OcapClient; getEvmClient(): JsonRpcProvider; getGooglePlayClient(): GooglePlayClient; getAppStoreClient(): AppStoreClient; static supportAutoCharge(id: string): Promise; } export type TPaymentMethod = InferAttributes;