import * as React from "react";
import { CompositeItemHTMLProps, CompositeItemOptions } from "reakit";
import { DateSegment, SegmentStateReturn } from "./SegmentState";
export declare type SegmentOptions = CompositeItemOptions & Pick<SegmentStateReturn, "next" | "fieldValue" | "setSegment" | "increment" | "decrement" | "incrementPage" | "decrementPage" | "dateFormatter" | "confirmPlaceholder"> & {
    segment: DateSegment;
    isDisabled?: boolean;
    isReadOnly?: boolean;
    isRequired?: boolean;
};
export declare type SegmentHTMLProps = CompositeItemHTMLProps;
export declare type SegmentProps = SegmentOptions & SegmentHTMLProps;
export declare const useSegment: {
    (options?: SegmentOptions | undefined, htmlProps?: CompositeItemHTMLProps | undefined, unstable_ignoreUseOptions?: boolean | undefined): CompositeItemHTMLProps;
    unstable_propsAreEqual: (prev: import("reakit").RoleOptions & {
        disabled?: boolean | undefined;
        focusable?: boolean | undefined;
    } & {
        unstable_clickOnEnter?: boolean | undefined;
        unstable_clickOnSpace?: boolean | undefined;
    } & Pick<Partial<import("reakit").unstable_IdStateReturn>, "baseId" | "unstable_idCountRef"> & {
        id?: string | undefined;
    } & Pick<Partial<import("reakit").CompositeStateReturn>, "baseId" | "unstable_virtual" | "orientation" | "unstable_moves" | "unstable_hasActiveWidget"> & Pick<import("reakit").CompositeStateReturn, "currentId" | "items" | "registerItem" | "unregisterItem" | "next" | "previous" | "up" | "down" | "first" | "last" | "setCurrentId"> & Pick<{
        fieldValue: Date;
        setFieldValue: (value: Date) => void;
        segments: 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>>;
    }, "next" | "fieldValue" | "dateFormatter" | "increment" | "decrement" | "incrementPage" | "decrementPage" | "setSegment" | "confirmPlaceholder"> & {
        segment: DateSegment;
        isDisabled?: boolean | undefined;
        isReadOnly?: boolean | undefined;
        isRequired?: boolean | undefined;
    } & React.HTMLAttributes<any> & React.RefAttributes<any> & {
        wrapElement?: ((element: React.ReactNode) => React.ReactNode) | undefined;
    } & {
        disabled?: boolean | undefined;
    }, next: import("reakit").RoleOptions & {
        disabled?: boolean | undefined;
        focusable?: boolean | undefined;
    } & {
        unstable_clickOnEnter?: boolean | undefined;
        unstable_clickOnSpace?: boolean | undefined;
    } & Pick<Partial<import("reakit").unstable_IdStateReturn>, "baseId" | "unstable_idCountRef"> & {
        id?: string | undefined;
    } & Pick<Partial<import("reakit").CompositeStateReturn>, "baseId" | "unstable_virtual" | "orientation" | "unstable_moves" | "unstable_hasActiveWidget"> & Pick<import("reakit").CompositeStateReturn, "currentId" | "items" | "registerItem" | "unregisterItem" | "next" | "previous" | "up" | "down" | "first" | "last" | "setCurrentId"> & Pick<{
        fieldValue: Date;
        setFieldValue: (value: Date) => void;
        segments: 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>>;
    }, "next" | "fieldValue" | "dateFormatter" | "increment" | "decrement" | "incrementPage" | "decrementPage" | "setSegment" | "confirmPlaceholder"> & {
        segment: DateSegment;
        isDisabled?: boolean | undefined;
        isReadOnly?: boolean | undefined;
        isRequired?: boolean | undefined;
    } & React.HTMLAttributes<any> & React.RefAttributes<any> & {
        wrapElement?: ((element: React.ReactNode) => React.ReactNode) | undefined;
    } & {
        disabled?: boolean | undefined;
    }) => boolean;
    __keys: readonly any[];
    __useOptions: (options: SegmentOptions, htmlProps: CompositeItemHTMLProps) => SegmentOptions;
};
export declare const Segment: import("../system").Component<"div", import("reakit").RoleOptions & {
    disabled?: boolean | undefined;
    focusable?: boolean | undefined;
} & {
    unstable_clickOnEnter?: boolean | undefined;
    unstable_clickOnSpace?: boolean | undefined;
} & Pick<Partial<import("reakit").unstable_IdStateReturn>, "baseId" | "unstable_idCountRef"> & {
    id?: string | undefined;
} & Pick<Partial<import("reakit").CompositeStateReturn>, "baseId" | "unstable_virtual" | "orientation" | "unstable_moves" | "unstable_hasActiveWidget"> & Pick<import("reakit").CompositeStateReturn, "currentId" | "items" | "registerItem" | "unregisterItem" | "next" | "previous" | "up" | "down" | "first" | "last" | "setCurrentId"> & Pick<{
    fieldValue: Date;
    setFieldValue: (value: Date) => void;
    segments: 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>>;
}, "next" | "fieldValue" | "dateFormatter" | "increment" | "decrement" | "incrementPage" | "decrementPage" | "setSegment" | "confirmPlaceholder"> & {
    segment: DateSegment;
    isDisabled?: boolean | undefined;
    isReadOnly?: boolean | undefined;
    isRequired?: boolean | undefined;
} & React.HTMLAttributes<any> & React.RefAttributes<any> & {
    wrapElement?: ((element: React.ReactNode) => React.ReactNode) | undefined;
} & {
    disabled?: boolean | undefined;
}>;
