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