import { CreationOptional, DataTypes, InferAttributes, InferCreationAttributes } from 'sequelize'; import type { LiteralUnion } from 'type-fest'; import { TenantModel } from '../tenant-model'; import type { BrandSettings, PricingTableItem } from './types'; export declare const nextPricingTableId: (size?: number) => string; export declare class PricingTable extends TenantModel, InferCreationAttributes> { id: CreationOptional; active: boolean; livemode: boolean; instance_did?: string; locked: boolean; name: string; items: PricingTableItem[]; branding_settings: BrandSettings; metadata?: Record; created_at: CreationOptional; created_via: LiteralUnion<'api' | 'dashboard' | 'portal', string>; updated_at: CreationOptional; 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; allowNull: boolean; }; name: { type: DataTypes.StringDataType; allowNull: boolean; }; items: { type: DataTypes.AbstractDataTypeConstructor; defaultValue: never[]; }; branding_settings: { type: DataTypes.AbstractDataTypeConstructor; allowNull: boolean; }; metadata: { type: DataTypes.AbstractDataTypeConstructor; allowNull: boolean; }; created_at: { type: DataTypes.DateDataTypeConstructor; defaultValue: DataTypes.AbstractDataTypeConstructor; allowNull: boolean; }; created_via: { type: DataTypes.EnumDataType<"api" | "dashboard" | "portal">; }; updated_at: { type: DataTypes.DateDataTypeConstructor; defaultValue: DataTypes.AbstractDataTypeConstructor; allowNull: boolean; }; }; static initialize(sequelize: any): void; static associate(): void; static formatItem(payload: any): { adjustable_quantity: { enabled: boolean; maximum: number; minimum: number; }; after_completion: { type: string; hosted_confirmation: { custom_message: string; }; }; allow_promotion_codes: boolean; customer_creation: string; consent_collection: { promotions: string; terms_of_service: string; }; invoice_creation: { enabled: boolean; }; phone_number_collection: { enabled: boolean; }; billing_address_collection: string; subscription_data: { description: string; trial_period_days: number; }; nft_mint_settings: { enabled: boolean; factory: string; }; submit_type: string; cross_sell_behavior: string; } & Pick; static format(payload: any): Partial; expand(): Promise>; } export type TPricingTable = InferAttributes;