/// <reference types="react" />
import { bounds } from "@synnaxlabs/x";
import { type DragButtonExtensionProps } from './DragButton';
import { type BaseProps } from './types';
export interface NumericProps extends Omit<BaseProps<number>, "type" | "onBlur">, DragButtonExtensionProps {
    selectOnFocus?: boolean;
    showDragHandle?: boolean;
    bounds?: bounds.Crude;
    onBlur?: () => void;
}
/**
 * A controlled number input component.
 *
 * @param props - The props for the input component. Unlisted props are passed to the
 * underlying input element.
 * @param props.value - The value of the input.
 * @param props.onChange - A function to call when the input value changes.
 * @param props.size - The size of the input: "small" | "medium" | "large".
 * @default "medium"
 * @param props.selectOnFocus - Whether the input should select its contents when focused.
 * @defaul true
 * @param props.centerPlaceholder - Whether the placeholder should be centered.
 * @default false
 * @param props.showDragHandle - Whether or not to show a drag handle to set the time.
 * @default true
 * @param props.dragScale - The scale of the drag handle.
 * @default x: 1, y: 10
 * @param props.dragDirection - The direction of the drag handle.
 * @default undefined
 */
export declare const Numeric: import("react").ForwardRefExoticComponent<NumericProps & import("react").RefAttributes<HTMLInputElement>>;
