/** @jsx html */
import { VNode } from 'snabbdom';
type OptionChangeHandler<T> = (newValue: T) => void;
interface BaseProps<T> {
    key?: string;
    id: string;
    name: string;
    value: T;
    description?: string;
    onChange: OptionChangeHandler<T>;
}
type CheckOptionProps = BaseProps<boolean>;
/** Render a labeled checkbox input. */
export declare function CheckOption(props: CheckOptionProps): VNode;
interface ChoiceOptionProps extends BaseProps<string> {
    availableValues: string[];
    availableValuesLabels?: string[];
}
/** Render a labeled group of radio inputs. */
export declare function ChoiceOption(props: ChoiceOptionProps): VNode;
interface RangeOptionProps extends BaseProps<number> {
    minValue: number;
    maxValue: number;
    stepSize: number;
    /** Same as onChange() but to be executed on each input, i.e. when the slider is held down instead of when it's let go. */
    onInput?: OptionChangeHandler<number>;
}
/** Render a labeled range slider as input. */
export declare function RangeOption(props: RangeOptionProps): VNode;
type TextOptionProps = BaseProps<string>;
/** Renders a labeled text input. */
export declare function TextOption(props: TextOptionProps): VNode;
/** Renders a named separator. */
export declare function SeparatorOption(props: {
    name: string;
    key?: string;
}): VNode;
interface CategoryOptionProps extends BaseProps<boolean> {
    children?: (VNode | '') | (VNode | '')[];
}
/** Renders a labeled options group. */
export declare function CategoryOption(props: CategoryOptionProps, children: VNode[]): VNode;
export {};
//# sourceMappingURL=option-inputs.d.ts.map