import { default as React, ReactNode, HTMLAttributes, FocusEventHandler, ChangeEventHandler } from 'react';
type AddOptionValueAndLabelFunction = (value: string, label: string, children: ReactNode) => void;
export type ComboBoxContextType = {
selectedValue?: string;
truncateOptions: boolean;
addOptionValueAndLabel: AddOptionValueAndLabelFunction;
};
export declare const ComboBoxContext: React.Context;
/**
* The `ComboBox` component is a customizable, accessible, and interactive dropdown component, allowing users to select from a list of options.
* It features dynamic filtering and optional asynchronous loading for extended functionality.
* @see https://cloudoperators.github.io/juno/?path=/docs/forms-combobox-combobox--docs
* @see {@link ComboBoxProps}
*/
export declare const ComboBox: ({ ariaLabel, children, className, defaultValue, disabled, error, errortext, helptext, id, invalid, loading, label, name, onBlur, onChange, onFocus, onInputChange, placeholder, required, successtext, truncateOptions, valid, value, valueLabel, width, wrapperClassName, ...props }: ComboBoxProps) => ReactNode;
export type ComboBoxWidth = "full" | "auto";
export interface ComboBoxProps extends Omit, "onChange" | "onInput" | "children"> {
/** ARIA label for accessibility. Defaults to label if provided. */
ariaLabel?: string;
/** Children to render, typically using `ComboBox.Option`. */
children?: ReactNode;
/**
* Additional class names for styling.
* @default ""
*/
className?: string;
/** Default value for ComboBox, applicable in uncontrolled mode. */
defaultValue?: string;
/**
* Indicates if ComboBox is disabled.
* @default false
*/
disabled?: boolean;
/**
* Indicates internal ComboBox error. Use `invalid` for validation failures.
* @default false
*/
error?: boolean;
/** Text displayed for validation errors or internal issues. */
errortext?: ReactNode;
/** Additional context or instructions displayed below the ComboBox. */
helptext?: ReactNode;
/** ID for ComboBox. If unspecified, auto-generated. */
id?: string;
/**
* Identifies invalid ComboBox state.
* @default false
*/
invalid?: boolean;
/** ComboBox label text. */
label?: string;
/**
* Loading state for asynchronous actions.
* @default false
*/
loading?: boolean;
/** Name attribute when used within a form. */
name?: string;
/** Handler for when the ComboBox loses focus. */
onBlur?: FocusEventHandler;
/** Handler for changes in the ComboBox selection. */
onChange?: (_value: string) => void;
/** Handler for when the ComboBox input gains focus. */
onFocus?: FocusEventHandler;
/** Handler for changes in the ComboBox's text input value. */
onInputChange?: ChangeEventHandler;
/** Placeholder text for ComboBox input.
* @default "Select…"
*/
placeholder?: string;
/**
* Flags the ComboBox as a required field.
* @default false
*/
required?: boolean;
/** Text shown upon successful validation of the ComboBox. */
successtext?: ReactNode;
/**
* Controls option text truncation in the dropdown.
* @default false
*/
truncateOptions?: boolean;
/**
* Specifies successful validation state.
* @default false
*/
valid?: boolean;
/** Controlled value for ComboBox in managed state. */
value?: string;
/** Label corresponding to the selected or default value for display. */
valueLabel?: string;
/**
* Width determination for input: "full" or "auto".
* @default "full"
*/
width?: ComboBoxWidth;
/** Custom styling classes for the ComboBox's wrapper.
* @default ""
*/
wrapperClassName?: string;
}
export {};
//# sourceMappingURL=ComboBox.component.d.ts.map