import * as react_jsx_runtime from 'react/jsx-runtime'; /** * Form Primitives — WealthX DS (L3) * * Reusable input primitives for financial forms. * Used inside Opportunity edit modals and loan application forms. * * Components: * - CurrencyInputWithSlider — formatted currency text input + range slider * - ConcernScale — 1–5 priority/importance selector * - AddressAutocomplete — text input with filtered suggestion dropdown * - OwnershipSplit — two-owner percentage split (sums to 100 %) */ interface CurrencyInputWithSliderProps { /** Numeric value in dollars */ value?: number; /** Default value when uncontrolled */ defaultValue?: number; min?: number; max?: number; step?: number; disabled?: boolean; /** Called with the updated numeric value */ onValueChange?: (value: number) => void; className?: string; } /** * Currency text input paired with a range slider. * The two controls stay in sync — editing the input moves the slider and vice versa. * * ```tsx * * ``` */ declare function CurrencyInputWithSlider({ value: controlledValue, defaultValue, min, max, step, disabled, onValueChange, className, }: CurrencyInputWithSliderProps): react_jsx_runtime.JSX.Element; interface ConcernScaleProps { value?: number; defaultValue?: number; disabled?: boolean; /** Number of steps (default 5) */ steps?: number; lowLabel?: string; highLabel?: string; onValueChange?: (value: number) => void; className?: string; } /** * 1–N priority / importance selector using DS ToggleGroup buttons. * One button is active at a time; selecting the same value again clears to 0. * * ```tsx * * ``` */ declare function ConcernScale({ value: controlledValue, defaultValue, disabled, steps, lowLabel, highLabel, onValueChange, className, }: ConcernScaleProps): react_jsx_runtime.JSX.Element; interface AddressOption { id: string; label: string; suburb?: string; state?: string; postcode?: string; } interface AddressAutocompleteProps { value?: string; placeholder?: string; suggestions?: AddressOption[]; disabled?: boolean; onValueChange?: (value: string) => void; onSelect?: (option: AddressOption) => void; className?: string; } /** * Address text input with filtered suggestion dropdown. * Filters the `suggestions` list on each keystroke (case-insensitive substring match). * Pass `onSelect` to receive the full structured `AddressOption` on selection. * * In production, replace `suggestions` with results from a geocoding API. * * ```tsx * console.log(opt.postcode)} * /> * ``` */ declare function AddressAutocomplete({ value: controlledValue, placeholder, suggestions, disabled, onValueChange, onSelect, className, }: AddressAutocompleteProps): react_jsx_runtime.JSX.Element; interface OwnershipOwner { id: string; name: string; /** Percentage 0–100 */ share: number; } interface OwnershipSplitProps { owners?: OwnershipOwner[]; disabled?: boolean; onOwnersChange?: (owners: OwnershipOwner[]) => void; className?: string; } /** * Two-owner (or N-owner) percentage split control. * Adjusting one owner's slider redistributes the remainder proportionally. * The sum always stays at 100 %. * * ```tsx * * ``` */ declare function OwnershipSplit({ owners: controlledOwners, disabled, onOwnersChange, className, }: OwnershipSplitProps): react_jsx_runtime.JSX.Element; export { AddressAutocomplete, type AddressAutocompleteProps, type AddressOption, ConcernScale, type ConcernScaleProps, CurrencyInputWithSlider, type CurrencyInputWithSliderProps, type OwnershipOwner, OwnershipSplit, type OwnershipSplitProps };