/// <reference types="react" />
import { TimeStamp, type TZInfo } from "@synnaxlabs/x";
import { type DragButtonExtensionProps } from './DragButton';
import { type BaseProps } from './types';
export declare const combineDateAndTimeValue: (date: number, time: number) => TimeStamp;
export interface TimeProps extends BaseProps<number>, DragButtonExtensionProps {
    tzInfo?: TZInfo;
    showDragHandle?: boolean;
}
export interface UseTimeProps extends Pick<TimeProps, "value" | "onChange" | "tzInfo"> {
}
export interface UseTimeReturn {
    value: string;
    onChange: (value: string | number) => void;
}
export declare const useTime: ({ value, onChange, tzInfo }: UseTimeProps) => {
    inputValue: string;
    ts: TimeStamp;
    handleChange: (value: number | string) => void;
};
/**
 * A controlled Time 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/2 Second, y: 1 Minute
 * @param props.dragDirection - The direction of the drag handle.
 * @default undefined
 */
export declare const Time: import("react").ForwardRefExoticComponent<TimeProps & import("react").RefAttributes<HTMLInputElement>>;
