import * as React from "react";
import { ValueBase } from "@react-types/shared";
import { PickerBaseInitialState } from "../picker-base";
import { SegmentInitialState } from "../segment";
export declare type TimePickerInitialState = PickerBaseInitialState & ValueBase<string> & Pick<Partial<SegmentInitialState>, "formatOptions" | "placeholderDate"> & {
    /**
     * Whether the element should receive focus on render.
     */
    autoFocus?: boolean;
};
export declare const useTimePickerState: (props?: TimePickerInitialState) => {
    fieldValue: Date;
    setFieldValue: (value: Date) => void;
    segments: import("../segment").DateSegment[];
    dateFormatter: import("@internationalized/date").DateFormatter;
    increment(part: Intl.DateTimeFormatPartTypes): void;
    decrement(part: Intl.DateTimeFormatPartTypes): void;
    incrementPage(part: Intl.DateTimeFormatPartTypes): void;
    decrementPage(part: Intl.DateTimeFormatPartTypes): void;
    setSegment(part: Intl.DateTimeFormatPartTypes, v: number): void;
    confirmPlaceholder(part: Intl.DateTimeFormatPartTypes): 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;
    up: (unstable_allTheWay?: boolean | undefined) => void;
    down: (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>>;
    visible: boolean;
    animated: number | boolean; /**
     * Whether the element should receive focus on render.
     */
    animating: boolean;
    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;
    time: Date;
    hours: number[];
    minutes: number[];
    meridies: string[];
    hourState: {
        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; /**
             * Whether the element should receive focus on render.
             */
            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: import("./TimePickerColumnState").ColumnType;
        restoreOldTime: (() => Date) | undefined;
        updateOldTime: (() => void) | undefined;
    };
    minuteState: {
        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; /**
             * Whether the element should receive focus on render.
             */
            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: import("./TimePickerColumnState").ColumnType;
        restoreOldTime: (() => Date) | undefined;
        updateOldTime: (() => void) | undefined;
    };
    meridiesState: {
        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; /**
             * Whether the element should receive focus on render.
             */
            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: import("./TimePickerColumnState").ColumnType;
        restoreOldTime: (() => Date) | undefined;
        updateOldTime: (() => void) | undefined;
    };
};
export declare type TimePickerStateReturn = ReturnType<typeof useTimePickerState>;
