import * as react_jsx_runtime from 'react/jsx-runtime'; /** * Financial card molecules — WealthX DS (Level 3) * * Composed from financial primitives (Level 2) + shadcn atoms. * Used inside summary report drawers, opportunity detail panels, * and any financial data section in the backoffice. * * Component inventory: * PropertyCard — property holding with optional bank link + expandable loan detail * DebtCard — mortgage / investment-loan breakdown * OtherLiabilityCard — credit card or personal loan card (discriminated by `type`) * AlertCard — single alert item with severity indicator + dismiss/snooze actions */ interface PropertyCardProps { /** Street address or property name */ address: string; /** Badge label: "Owner Occupier", "Investment", etc. */ type?: string; /** Estimated property value e.g. "$1,200,000" */ estimated: string; /** * When true removes the outer card border. * Use inside `FinancialViewSection` where the card is already inside a bordered container. */ borderless?: boolean; /** Whether a bank mortgage account is linked to this property */ isLinkedToBank?: boolean; /** Outstanding loan amount — only shown when isLinkedToBank */ loanAmount?: string; /** Equity = estimated − loan — only shown when isLinkedToBank */ equity?: string; /** LVR label e.g. "56% — Good" — only shown when isLinkedToBank */ lvr?: string; /** LVR numeric percentage (drives color thresholds) */ lvrPercent?: number; lenderName?: string; interestRate?: string; yearsRemaining?: string; minRepayments?: string; averageRepayments?: string; redrawAmount?: string; offsetAccount?: string; totalMinRepayments?: string; totalExtraRepayments?: string; interestCharged?: string; principlePaidOff?: string; } declare function PropertyCard({ address, type, estimated, isLinkedToBank, borderless, loanAmount, equity, lvr, lvrPercent, lenderName, interestRate, yearsRemaining, minRepayments, averageRepayments, redrawAmount, offsetAccount, totalMinRepayments, totalExtraRepayments, interestCharged, principlePaidOff, }: PropertyCardProps): react_jsx_runtime.JSX.Element; interface DebtCardProps { lenderName?: string; currentLoanAmount?: string; /** Current annual interest rate e.g. `"6.04% p.a."` */ interestRate?: string; originalLoanAmount?: string; /** Original term at drawdown e.g. `"30 years"` */ originalLoanTerm?: string; /** Minimum scheduled monthly repayment */ monthlyRepayments?: string; /** Available redraw balance */ redrawAmount?: string; /** Linked offset account balance */ offsetAmount?: string; /** Additional voluntary repayments per month */ extraLoanRepayments?: string; /** Cumulative repayments made within the selected date range */ totalRepaymentsMade?: string; /** Cumulative interest paid within the selected date range */ totalInterestPaid?: string; /** Remaining loan term e.g. `"25 years"` */ yearsRemaining?: string; } declare function DebtCard({ lenderName, currentLoanAmount, interestRate, originalLoanAmount, originalLoanTerm, monthlyRepayments, redrawAmount, offsetAmount, extraLoanRepayments, totalRepaymentsMade, totalInterestPaid, yearsRemaining, }: DebtCardProps): react_jsx_runtime.JSX.Element; type OtherLiabilityType = "credit_card" | "personal_loan"; interface OtherLiabilityCardProps { /** * Discriminates the field set and footer layout: * - `"credit_card"` → Card Stats (Credit Limit, Min Payment, Annual Fee) * - `"personal_loan"` → Loan Stats (Original Amount, Term, Monthly Repayments) */ type: OtherLiabilityType; lenderName?: string; /** Annual interest rate e.g. `"19.99% p.a."` */ interestRate?: string; /** Current outstanding balance on the card */ currentBalance?: string; /** Approved credit limit */ creditLimit?: string; /** Minimum required monthly payment */ minMonthlyPayment?: string; annualFee?: string; /** Pre-computed available credit: `creditLimit − currentBalance` */ availableCredit?: string; /** Current outstanding loan balance */ currentLoanAmount?: string; originalLoanAmount?: string; /** Original term at drawdown e.g. `"5 years"` */ originalLoanTerm?: string; /** Minimum scheduled monthly repayment */ monthlyRepayments?: string; /** Remaining term e.g. `"2.5 years"` */ currentLoanTermLeft?: string; /** Cumulative repayments made within the selected date range */ totalRepaymentsMade?: string; /** Cumulative interest paid within the selected date range */ totalInterestPaid?: string; } declare function OtherLiabilityCard({ type, lenderName, interestRate, currentBalance, creditLimit, minMonthlyPayment, annualFee, availableCredit, currentLoanAmount, originalLoanAmount, originalLoanTerm, monthlyRepayments, currentLoanTermLeft, totalRepaymentsMade, totalInterestPaid, }: OtherLiabilityCardProps): react_jsx_runtime.JSX.Element; type AlertSeverity = "NEED_ACTION" | "WATCH" | "INSIGHT"; type AlertActionType = "DISMISS" | "SNOOZE"; interface AlertCardProps { id: string; name: string; severityCode: AlertSeverity; /** Whether this alert has an active ignore period */ ignored?: boolean; /** Human-readable date string e.g. "31/12/2025" */ ignoredUntil?: string; /** Currently selected action, controlled externally */ selectedAction?: AlertActionType | null; onActionChange?: (action: AlertActionType) => void; } declare function AlertCard({ id, name, severityCode, ignored, ignoredUntil, selectedAction, onActionChange, }: AlertCardProps): react_jsx_runtime.JSX.Element; interface AboutCardProps { title?: string; firstName?: string; lastName?: string; phone?: string; email?: string; dob?: string; gender?: string; maritalStatus?: string; numDependants?: string; /** Individual dependant records — shows DOB + age for each. */ dependants?: Array<{ dob: string; }>; citizenStatus?: string; residentialAddress?: string; residentialStatus?: string; timeAtAddressYears?: string; timeAtAddressMonths?: string; driversLicence?: string; passport?: string; propertyInTrust?: string; companyOwnership?: string; /** Remove the outer card border. Use when the card is already inside a bordered container. */ borderless?: boolean; } /** * Display card for applicant personal / contact information. * Used inside the Summary tab applicant sub-tabs. */ declare function AboutCard({ title, firstName, lastName, phone, email, dob, gender, maritalStatus, numDependants, dependants, citizenStatus, residentialAddress, residentialStatus, timeAtAddressYears, timeAtAddressMonths, driversLicence, passport, propertyInTrust, companyOwnership, borderless, }: AboutCardProps): react_jsx_runtime.JSX.Element; interface IncomeCardItem { incomeType: string; jobTitle?: string; companyName?: string; companyAddress?: string; startDate?: string; stillInPosition?: boolean; endDate?: string; companyType?: string; /** Pre-formatted amount + frequency e.g. "$9,500 / Monthly" */ amountLabel: string; } interface IncomeCardProps { items: IncomeCardItem[]; /** Pre-formatted total monthly income e.g. "$12,300" */ totalMonthly?: string; /** Remove the outer card border. Use when the card is already inside a bordered container. */ borderless?: boolean; } /** * Display card for applicant income items. * Each income source is an accordion row: collapsed = type + amount, * expanded = full employment details. */ declare function IncomeCard({ items, totalMonthly, borderless, }: IncomeCardProps): react_jsx_runtime.JSX.Element; interface ExpensesCardItem { expenseType: string; /** Pre-formatted amount + frequency e.g. "$800 / Monthly" */ amountLabel: string; } interface ExpensesCardProps { items: ExpensesCardItem[]; /** Pre-formatted total monthly expenses e.g. "$2,100" */ totalMonthly?: string; /** Remove the outer card border. Use when the card is already inside a bordered container. */ borderless?: boolean; } /** * Display card for applicant expense items. * Each expense renders as an icon-labelled row with a destructive amount value. */ declare function ExpensesCard({ items, totalMonthly, borderless, }: ExpensesCardProps): react_jsx_runtime.JSX.Element; export { AboutCard, type AboutCardProps, type AlertActionType, AlertCard, type AlertCardProps, type AlertSeverity, DebtCard, type DebtCardProps, ExpensesCard, type ExpensesCardItem, type ExpensesCardProps, IncomeCard, type IncomeCardItem, type IncomeCardProps, OtherLiabilityCard, type OtherLiabilityCardProps, type OtherLiabilityType, PropertyCard, type PropertyCardProps };