import React from 'react';
import PropTypes from 'prop-types';
import BaseComponent, { BaseProps } from '../_base/baseComponent';
import ScrollItem from '../scrollList/scrollItem';
import ComboboxFoundation, { formatOption } from '@douyinfe/semi-foundation/lib/cjs/timePicker/ComboxFoundation';
import { TimePickerProps } from './TimePicker';
import { Locale } from '../locale/interface';
export type ComboboxProps = Pick<TimePickerProps, 'format' | 'prefixCls' | 'disabledHours' | 'disabledMinutes' | 'disabledSeconds' | 'hideDisabledOptions' | 'use12Hours' | 'hourStep' | 'minuteStep' | 'secondStep' | 'scrollItemProps' | 'panelFooter' | 'panelHeader'> & BaseProps & {
    defaultOpenValue?: TimePickerProps['value'];
    showHour?: boolean;
    showMinute?: boolean;
    showSecond?: boolean;
    onChange?: (value: {
        isAM: boolean;
        value: string;
        timeStampValue: number;
    }) => void;
    onCurrentSelectPanelChange?: (range: string) => void;
    isAM?: boolean;
    timeStampValue?: any;
};
export interface ComboboxState {
    showHour: boolean;
    showMinute: boolean;
    showSecond: boolean;
    hourOptions: number[];
    minuteOptions: number[];
    secondOptions: number[];
}
export type FormatOptionReturn = ReturnType<typeof formatOption>;
export interface AMPMOptionItem {
    value: string;
    text: string;
}
declare class Combobox extends BaseComponent<ComboboxProps, ComboboxState> {
    static propTypes: {
        format: PropTypes.Requireable<string>;
        defaultOpenValue: PropTypes.Requireable<object>;
        prefixCls: PropTypes.Requireable<string>;
        onChange: PropTypes.Requireable<(...args: any[]) => any>;
        showHour: PropTypes.Requireable<boolean>;
        showMinute: PropTypes.Requireable<boolean>;
        showSecond: PropTypes.Requireable<boolean>;
        disabledHours: PropTypes.Requireable<(...args: any[]) => any>;
        disabledMinutes: PropTypes.Requireable<(...args: any[]) => any>;
        disabledSeconds: PropTypes.Requireable<(...args: any[]) => any>;
        hideDisabledOptions: PropTypes.Requireable<boolean>;
        onCurrentSelectPanelChange: PropTypes.Requireable<(...args: any[]) => any>;
        use12Hours: PropTypes.Requireable<boolean>;
        isAM: PropTypes.Requireable<boolean>;
        timeStampValue: PropTypes.Requireable<any>;
        scrollItemProps: PropTypes.Requireable<object>;
    };
    static defaultProps: {
        disabledHours: (...args: any[]) => void;
        disabledMinutes: (...args: any[]) => void;
        disabledSeconds: (...args: any[]) => void;
        format: string;
    };
    foundation: ComboboxFoundation;
    constructor(props: ComboboxProps);
    componentDidUpdate(prevProps: ComboboxProps, prevState: ComboboxState): void;
    componentWillUnmount(): void;
    componentDidMount(): void;
    cacheRefCurrent: (key: string, current: ScrollItem<FormatOptionReturn> | ScrollItem<AMPMOptionItem>) => void;
    reselect: () => void;
    onItemChange: ({ type, value, disabled }: {
        type?: string;
        value: string;
        disabled?: boolean;
    }) => void;
    onEnterSelectPanel: (range: string) => void;
    renderHourSelect(hour: number, locale: Locale['TimePicker']): React.JSX.Element;
    renderMinuteSelect(minute: number, locale: Locale['TimePicker']): React.JSX.Element;
    renderSecondSelect(second: number, locale: Locale['TimePicker']): React.JSX.Element;
    renderAMPMSelect(locale: Locale['TimePicker'], localeCode: string): React.JSX.Element;
    getDisplayDateFromTimeStamp: (timeStampValue: Date | string) => any;
    render(): React.JSX.Element;
}
export default Combobox;
