UNPKG

@cranberry-money/shared-types

Version:

Shared TypeScript type definitions for Blueberry platform

175 lines 6.58 kB
import type { Portfolio, AssetAllocation, UserProfile, TaxResidency, CreateTaxResidency, InvestmentPreference, CreateInvestmentPreference, Country, InstrumentFilters, CashAccount, BaseFilters, DateRangeFilters, NumericRangeFilters, TradeActionFilters, FormValidation, MessageFieldValidation, ExtendedFieldValidation, DateFieldValidation, FieldValidation, AddressFieldValidation, PhoneFieldValidation, PortfolioTemplate, TargetAssetAllocation, WithdrawalRequest, WithdrawalAssetLiquidation, CreateWithdrawalAssetLiquidation, BankAccount, BankAccountQueryParams, CashAccountTransaction, CashAccountTransactionQueryParams, RebalancingTradesGenerationResponse, TransactionFilters as ImportedTransactionFilters } from '../../index'; import type { WithdrawalStatus, LiquidationStatus, TradeStatus } from '../../ui/badge-status'; import type { CashAccountTransactionType } from '@cranberry-money/shared-constants'; export interface AllocationState { searchQuery: string; selectedInstruments: Set<string>; allocations: Record<string, number>; showFilters: boolean; filters: InstrumentFilters; } export interface EnhancedAllocationState extends AllocationState { serverFilters: InstrumentFilters; } export interface PortfolioSelectionState { selectedTemplateUuid: string | null; viewingDetailsForUuid: string | null; } export interface AllocationChartData { instrumentUuid: string; symbol: string; name: string; percentage: number; color: string; } export interface FinancialSummary { availableCashBalance: number; estimatedBuyCost: number; estimatedSellValue: number; totalWithdrawalAmount: number; } export interface InstrumentHolding { instrumentUuid: string; instrumentSymbol: string; instrumentName: string; currentPrice: number; currentQuantity: number; targetQuantity: number; } export interface CashSummary { totalBalance: number; totalDeposits: number; totalWithdrawals: number; netTransactionAmount: number; transactionCount: number; availableAccounts: CashAccount[]; } export interface HistoricalDataPoint { date: string; price: string; change: string; changePercent: string; } export interface InstrumentPerformanceData { instrumentUuid: string; symbol: string; name: string; percentage: string; historicalData: HistoricalDataPoint[]; color: string; isLoading: boolean; isError: boolean; error?: string; } export interface InstrumentData { instrumentUuid: string; symbol: string; name: string; percentage: string; color: string; isLoading: boolean; isError: boolean; historicalData: unknown[]; } export interface AllocationWithInstrument extends AssetAllocation { instrumentName: string; instrumentSymbol: string; } export interface ReviewData { userProfile: UserProfile | null; taxResidencies: TaxResidency[]; investmentPreferences: InvestmentPreference | null; portfolio: Portfolio | null; allocations: AssetAllocation[]; countries: Country[]; citizenshipCountry: Country | null; } export interface ReviewAllocation { uuid: string; instrumentName: string; instrumentSymbol: string; percentage: string; } export interface TemplateWithAllocations { template: PortfolioTemplate; allocations?: TargetAssetAllocation[]; isLoading: boolean; isError: boolean; } export interface DocumentUUIDs { [key: string]: string | null; } export interface InvestmentPreferenceFormState extends CreateInvestmentPreference { userProfileId: string; } export interface TaxResidencyForm extends CreateTaxResidency { localUuid: string; backendUuid?: string; } export interface InvestmentPreferenceFormValidation extends FormValidation { investmentHorizon: MessageFieldValidation; riskTolerance: MessageFieldValidation; investmentExperience: MessageFieldValidation; investmentAmount: MessageFieldValidation; sourceOfFunds: MessageFieldValidation; } export interface PortfolioSelectionFormValidation extends FormValidation { selectedTemplate: MessageFieldValidation; } export interface UserProfileFormValidation extends FormValidation { fullName: ExtendedFieldValidation; dateOfBirth: DateFieldValidation; citizenshipCountry: FieldValidation; residentialAddress: AddressFieldValidation; phoneNumber: PhoneFieldValidation; } export interface TokenValidation { isValid: boolean; isEmpty: boolean; isValidFormat: boolean; } export interface TransactionFilters extends BaseFilters, DateRangeFilters, NumericRangeFilters { transactionType?: CashAccountTransactionType; } export interface TradeFilters extends BaseFilters, DateRangeFilters, TradeActionFilters, NumericRangeFilters { status?: TradeStatus; settlementStartDate?: string; settlementEndDate?: string; currency?: string; } export interface TargetTradeFilters extends BaseFilters, DateRangeFilters, TradeActionFilters { instrumentUuid?: string; } export interface BlueberryTargetTradeFilters extends TargetTradeFilters { status?: string; min_value?: number; max_value?: number; } export interface BlueberryPageTransactionFilters extends Omit<ImportedTransactionFilters, 'transactionType'> { transactionType?: CashAccountTransactionType; } export interface BlueberryBankAccount extends Omit<BankAccount, 'accountType'> { accountType: string; } export interface BlueberryBankAccountQueryParams extends Omit<BankAccountQueryParams, 'account_type'> { account_type?: string; } export interface BlueberryWithdrawalRequest extends Omit<WithdrawalRequest, 'status'> { status: WithdrawalStatus; } export interface BlueberryWithdrawalAssetLiquidation extends Omit<WithdrawalAssetLiquidation, 'liquidationStatus'> { liquidationStatus: LiquidationStatus; } export interface BlueberryWithdrawalAssetLiquidationPayload extends Omit<CreateWithdrawalAssetLiquidation, 'liquidationStatus'> { liquidationStatus?: LiquidationStatus; } export interface BlueberryCashAccountTransaction extends Omit<CashAccountTransaction, 'transactionType'> { transactionType: CashAccountTransactionType; } export interface BlueberryCashAccountTransactionQueryParams extends Omit<CashAccountTransactionQueryParams, 'transaction_type'> { transaction_type?: CashAccountTransactionType; } export interface BlueberryRebalancingTradesGenerationResponse extends Omit<RebalancingTradesGenerationResponse, 'errorType'> { errorType?: string; } //# sourceMappingURL=view-models.d.ts.map