import type { DateObj } from './interface';
export declare const PickerType: {
    readonly date: "date";
    readonly datetime: "datetime";
    readonly datemultiple: "datemultiple";
    readonly daterange: "daterange";
    readonly datetimerange: "datetimerange";
    readonly datemonthrange: "datemonthrange";
    readonly year: "year";
    readonly month: "month";
    readonly quarter: "quarter";
};
export interface Picker {
    name: string;
    confirmLang: string;
    placeholderLang: string | string[];
    format: string;
    isRange: boolean;
    hasTime: boolean;
    getDateFromStr: (val: string) => Date;
    getLeftActiveDate?: (rightActiveDate: number) => number;
    getRightActiveDate?: (leftActiveDate: number) => number;
    isInSamePanel?: (left: number, right: number) => boolean;
    getRangeSelectedDate?: (date: Partial<DateObj>, preDate: DateObj) => DateObj;
}
export declare class DatePicker implements Picker {
    name: "date";
    confirmLang: string;
    placeholderLang: string;
    format: string;
    isRange: boolean;
    hasTime: boolean;
    getDateFromStr(val: string): Date;
}
export declare class DateMultiplePicker implements Picker {
    name: "datemultiple";
    confirmLang: string;
    placeholderLang: string;
    format: string;
    isRange: boolean;
    hasTime: boolean;
    getDateFromStr(val: string): Date;
}
export declare class DateTimePicker implements Picker {
    name: "datetime";
    confirmLang: string;
    placeholderLang: string;
    format: string;
    isRange: boolean;
    hasTime: boolean;
    getDateFromStr(val: string): Date;
}
declare class DateRange {
    getLeftActiveDate(rightActiveDate: number): number;
    getRightActiveDate(leftActiveDate: number): number;
    isInSamePanel(left: number, right: number): boolean;
    getRangeSelectedDate(date: Partial<DateObj>, preDate: DateObj): DateObj;
}
export declare class DateRangePicker extends DateRange implements Picker {
    name: "daterange";
    confirmLang: string;
    placeholderLang: string[];
    format: string;
    isRange: boolean;
    hasTime: boolean;
    getDateFromStr(val: string): Date;
}
export declare class DateTimeRangePicker extends DateRange implements Picker {
    name: "datetimerange";
    confirmLang: string;
    placeholderLang: string[];
    format: string;
    isRange: boolean;
    hasTime: boolean;
    getDateFromStr(val: string): Date;
}
export declare class DateMonthRangePicker implements Picker {
    name: "datemonthrange";
    confirmLang: string;
    placeholderLang: string[];
    format: string;
    isRange: boolean;
    hasTime: boolean;
    getDateFromStr(val: string): Date;
    getLeftActiveDate(rightActiveDate: number): number;
    getRightActiveDate(leftActiveDate: number): number;
    isInSamePanel(left: number, right: number): boolean;
    getRangeSelectedDate(date: Partial<DateObj>, preDate: DateObj): DateObj;
}
export declare class YearPicker implements Picker {
    name: "year";
    confirmLang: string;
    placeholderLang: string;
    format: string;
    isRange: boolean;
    hasTime: boolean;
    getDateFromStr(val: string): Date;
}
export declare class MonthPicker implements Picker {
    name: "month";
    confirmLang: string;
    placeholderLang: string;
    format: string;
    isRange: boolean;
    hasTime: boolean;
    getDateFromStr(val: string): Date;
}
export declare class QuarterPicker implements Picker {
    name: "quarter";
    confirmLang: string;
    placeholderLang: string;
    format: string;
    isRange: boolean;
    hasTime: boolean;
    getDateFromStr(val: string): Date;
}
export declare function pickerFactory(type: string): Picker;
export {};
