import { direction, TimeStamp, TZInfo } from '@synnaxlabs/x';
import { TextProps } from './Text';
import { Control } from './types';
export declare const combineDateAndTimeValue: (date: number, time: number) => TimeStamp;
export interface TimeProps extends Omit<TextProps, "type" | "value" | "onChange">, Control<number> {
    tzInfo?: TZInfo;
    showDragHandle?: boolean;
    dragDirection?: direction.Direction;
}
interface UseTimeProps extends Pick<TimeProps, "value" | "onChange" | "tzInfo"> {
}
export interface UseTimeReturn {
    inputValue: string;
    ts: TimeStamp;
    handleChange: Control<string | number>["onChange"];
}
export declare const useTime: ({ value, onChange, tzInfo }: UseTimeProps) => UseTimeReturn;
/**
 * 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: ({ ref, size, value, tzInfo, onChange, dragDirection, showDragHandle, className, children, ...rest }: TimeProps) => import("react/jsx-runtime").JSX.Element;
export {};
//# sourceMappingURL=Time.d.ts.map