/// <reference types="react" />
import { Component, ReactNode } from 'react';
import { SelectDrawerProps } from '../../select-drawer';
import { AvailableDate } from '../../utils/date';
import { BasicSizeType } from '../../utils/types';
export interface BasePickerProps extends Omit<SelectDrawerProps, 'onOk'> {
    prefix?: string;
    value?: AvailableDate;
    defaultValue?: AvailableDate;
    disabledDate?: (value: Date, view: string) => boolean;
    validRange?: [Date, Date];
    format?: string;
    mode?: 'calendar' | 'picker';
    size?: BasicSizeType;
    align?: 'left' | 'right';
    iconType?: string;
    placeholder?: string;
    hasClear?: boolean;
    disabled?: boolean;
    readOnly?: boolean;
    onChange?: (value: Date | null) => void;
    onClear?: () => void;
    onOk?: (value: Date) => void;
    onVisibleChange?: (visible: boolean) => void;
    onCancel?: (reason?: string) => void;
}
interface BasePickerState {
    value: Date | null;
    pickerValue: Date;
    yearPickerVisible?: boolean;
}
declare abstract class BasePicker<T extends BasePickerProps = BasePickerProps> extends Component<T, BasePickerState> {
    get format(): string;
    ref: import("react").RefObject<unknown>;
    calendarRef: import("react").RefObject<any>;
    constructor(props: T);
    handleChange(pickerValue: Date): void;
    handleYearPickerVisibleChange(show: boolean): void;
    handleOk(): boolean;
    handleClear: () => void;
    handleVisibleChange(to: boolean): void;
    handleCancel(reason: any): void;
    abstract renderPicker(): ReactNode;
    abstract getDefaultFormat(): string;
    componentDidUpdate(): void;
    show(): void;
    hide(): void;
    render(): JSX.Element;
}
export default BasePicker;
