import { CreationOptional, DataTypes, InferAttributes, InferCreationAttributes } from 'sequelize'; import type { LiteralUnion } from 'type-fest'; import { TenantModel } from '../tenant-model'; import type { PaymentDetails, PaymentError, PaymentMethodOptions } from './types'; export declare class SetupIntent extends TenantModel, InferCreationAttributes> { id: CreationOptional; livemode: boolean; instance_did?: string; description: string; currency_id: string; customer_id: string; last_setup_error: PaymentError | null; metadata?: Record; status: LiteralUnion<'requires_payment_method' | 'requires_confirmation' | 'requires_action' | 'processing' | 'requires_capture' | 'canceled' | 'succeeded', string>; usage: LiteralUnion<'on_session' | 'off_session', string>; canceled_at?: number; cancellation_reason?: LiteralUnion<'abandoned' | 'duplicate' | 'requested_by_customer', string>; flow_directions: LiteralUnion<'inbound' | 'outbound', string>[]; payment_method_options?: PaymentMethodOptions; payment_method_types?: string[]; payment_method_id: string; setup_details?: PaymentDetails; 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; }; currency_id: { type: DataTypes.StringDataType; allowNull: boolean; }; customer_id: { type: DataTypes.StringDataType; allowNull: boolean; }; description: { type: DataTypes.StringDataType; allowNull: boolean; }; last_setup_error: { type: DataTypes.AbstractDataTypeConstructor; allowNull: boolean; }; last_attempt: { type: DataTypes.StringDataType; allowNull: boolean; }; metadata: { type: DataTypes.AbstractDataTypeConstructor; allowNull: boolean; }; status: { type: DataTypes.EnumDataType<"processing" | "requires_action" | "requires_capture" | "canceled" | "requires_payment_method" | "requires_confirmation" | "succeeded">; allowNull: boolean; }; usage: { type: DataTypes.EnumDataType<"off_session" | "on_session">; allowNull: boolean; }; canceled_at: { type: DataTypes.IntegerDataTypeConstructor; allowNull: boolean; }; cancellation_reason: { type: DataTypes.EnumDataType<"duplicate" | "requested_by_customer" | "abandoned">; allowNull: boolean; }; flow_directions: { type: DataTypes.AbstractDataTypeConstructor; defaultValue: string[]; }; payment_method_types: { type: DataTypes.AbstractDataTypeConstructor; defaultValue: never[]; }; payment_method_options: { type: DataTypes.AbstractDataTypeConstructor; allowNull: boolean; }; payment_method_id: { type: DataTypes.StringDataType; allowNull: boolean; }; setup_details: { 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; isImmutable(): boolean; } export type TSetupIntent = InferAttributes;