import * as React from "react";
import { ValueBase } from "@react-types/shared";
import { PickerBaseStateReturn } from "../picker-base";
export declare type ColumnType = "hour" | "minute" | "meridian";
export interface TimePickerColumnInitialState extends ValueBase<Date> {
    /**
     * Popover visible state
     */
    visible?: boolean;
    /**
     * TimePicker column type
     *
     * @default "hour"
     */
    columnType?: ColumnType;
    popover?: PickerBaseStateReturn;
    restoreOldTime?(): Date;
    updateOldTime?(): void;
}
export declare const useTimePickerColumnState: (props?: TimePickerColumnInitialState) => {
    up: (unstable_allTheWay?: boolean | undefined) => void;
    down: (unstable_allTheWay?: boolean | undefined) => void;
    baseId: string;
    unstable_idCountRef: React.MutableRefObject<number>;
    setBaseId: React.Dispatch<React.SetStateAction<string>>;
    unstable_virtual: boolean;
    rtl: boolean;
    orientation?: import("reakit/ts/Composite/__utils/types").Orientation | undefined;
    items: import("reakit/ts/Composite/__utils/types").Item[];
    groups: import("reakit/ts/Composite/__utils/types").Group[];
    currentId?: string | null | undefined;
    loop: boolean | import("reakit/ts/Composite/__utils/types").Orientation;
    wrap: boolean | import("reakit/ts/Composite/__utils/types").Orientation;
    shift: boolean;
    unstable_moves: number;
    unstable_hasActiveWidget: boolean;
    unstable_includesBaseElement: boolean;
    registerItem: (item: import("reakit/ts/Composite/__utils/types").Item) => void;
    unregisterItem: (id: string) => void;
    registerGroup: (group: import("reakit/ts/Composite/__utils/types").Group) => void;
    unregisterGroup: (id: string) => void;
    move: (id: string | null) => void;
    next: (unstable_allTheWay?: boolean | undefined) => void;
    previous: (unstable_allTheWay?: boolean | undefined) => void;
    first: () => void;
    last: () => void;
    sort: () => void;
    unstable_setVirtual: React.Dispatch<React.SetStateAction<boolean>>;
    setRTL: React.Dispatch<React.SetStateAction<boolean>>;
    setOrientation: React.Dispatch<React.SetStateAction<import("reakit/ts/Composite/__utils/types").Orientation | undefined>>;
    setCurrentId: React.Dispatch<React.SetStateAction<string | null | undefined>>;
    setLoop: React.Dispatch<React.SetStateAction<boolean | import("reakit/ts/Composite/__utils/types").Orientation>>;
    setWrap: React.Dispatch<React.SetStateAction<boolean | import("reakit/ts/Composite/__utils/types").Orientation>>;
    setShift: React.Dispatch<React.SetStateAction<boolean>>;
    reset: () => void;
    unstable_setIncludesBaseElement: React.Dispatch<React.SetStateAction<boolean>>;
    unstable_setHasActiveWidget: React.Dispatch<React.SetStateAction<boolean>>;
    popover: {
        baseId: string;
        unstable_idCountRef: React.MutableRefObject<number>;
        visible: boolean;
        animated: number | boolean;
        animating: boolean;
        setBaseId: React.Dispatch<React.SetStateAction<string>>;
        show: () => void;
        hide: () => void;
        toggle: () => void;
        setVisible: React.Dispatch<React.SetStateAction<boolean>>;
        setAnimated: React.Dispatch<React.SetStateAction<number | boolean>>;
        stopAnimation: () => void;
        modal: boolean;
        unstable_disclosureRef: React.MutableRefObject<HTMLElement | null>;
        setModal: React.Dispatch<React.SetStateAction<boolean>>;
        unstable_referenceRef: React.RefObject<HTMLElement | null>;
        unstable_popoverRef: React.RefObject<HTMLElement | null>;
        unstable_arrowRef: React.RefObject<HTMLElement | null>;
        unstable_popoverStyles: React.CSSProperties;
        unstable_arrowStyles: React.CSSProperties;
        unstable_originalPlacement: "auto" | "left" | "right" | "auto-start" | "auto-end" | "top-start" | "top" | "top-end" | "right-start" | "right-end" | "bottom-end" | "bottom" | "bottom-start" | "left-end" | "left-start";
        unstable_update: () => boolean;
        placement: "auto" | "left" | "right" | "auto-start" | "auto-end" | "top-start" | "top" | "top-end" | "right-start" | "right-end" | "bottom-end" | "bottom" | "bottom-start" | "left-end" | "left-start";
        place: React.Dispatch<React.SetStateAction<"auto" | "left" | "right" | "auto-start" | "auto-end" | "top-start" | "top" | "top-end" | "right-start" | "right-end" | "bottom-end" | "bottom" | "bottom-start" | "left-end" | "left-start">>;
        pickerId: string | undefined;
        dialogId: string | undefined;
        isDisabled: boolean | undefined;
        isReadOnly: boolean | undefined;
        segmentFocus: (() => void) | undefined;
    } | undefined;
    date: Date;
    selected: number;
    setSelected: (value: number, close?: boolean | undefined) => void;
    visible: boolean | undefined;
    columnType: ColumnType;
    restoreOldTime: (() => Date) | undefined;
    updateOldTime: (() => void) | undefined;
};
export declare type TimePickerColumnStateReturn = ReturnType<typeof useTimePickerColumnState>;
