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 };