import React from 'react';
import type { OtherHTMLAttributes, RangeInputTheme, PickPropsWithExceptions } from '@instructure/shared-types';
import type { FormFieldOwnProps, FormMessage } from '@instructure/ui-form-field/v11_6';
import type { WithStyleProps, ComponentStyle } from '@instructure/emotion';
import type { InputHTMLAttributes } from 'react';
import type { WithDeterministicIdProps } from '@instructure/ui-react-utils';
type RangeInputOwnProps = {
min: number;
max: number;
/**
* value to set on initial render
*/
defaultValue?: number;
/**
* the selected value (must be accompanied by an `onChange` prop)
*/
value?: number;
/**
* when used with the `value` prop, the component will not control its own state
*/
onChange?: (value: number | string) => void;
messages?: FormMessage[];
/**
* The size of the value label
*/
size?: 'small' | 'medium' | 'large';
layout?: 'stacked' | 'inline';
id?: string;
label: React.ReactNode;
/**
* whether to display the current value
*/
displayValue?: boolean;
step?: number;
/**
* A function to format the displayed value
*/
formatValue?: (value?: number, max?: number) => string;
inline?: boolean;
disabled?: boolean;
readOnly?: boolean;
/**
* The "deprecated" variant has an outer shadow on focus.
* The "accessible" variant has better color contrast, border and inset focus ring for better accessibility.
*/
thumbVariant?: 'deprecated' | 'accessible';
/**
* A function that provides a reference to the actual underlying input element
*/
inputRef?: (inputElement: HTMLInputElement | null) => void;
};
type PropKeys = keyof RangeInputOwnProps;
type AllowedPropKeys = Readonly>;
type RangeInputProps = PickPropsWithExceptions & RangeInputOwnProps & WithStyleProps & OtherHTMLAttributes> & WithDeterministicIdProps;
type RangeInputStyle = ComponentStyle<'rangeInput' | 'rangeInputInput' | 'rangeInputInputValue'>;
type RangeInputState = {
value?: number | string;
};
declare const allowedProps: AllowedPropKeys;
export type { RangeInputProps, RangeInputState, RangeInputStyle };
export { allowedProps };
//# sourceMappingURL=props.d.ts.map