import { type ClassValue, type TranslateFn } from 'jamis-core';
import type { Moment } from 'moment';
import moment from 'moment';
import type { DateRangePickerProps, Shortcuts } from '../types';
export declare const OPTIONS_YEARS: {
    label: string | number;
    value: number;
}[];
export declare const OPTIONS_MONTH: {
    label: string;
    value: number;
}[];
export declare const makeSpanClass: (isActive?: boolean, isDisabled?: boolean, isBigSpan?: boolean) => ClassValue;
export declare const makePrevIconClass: () => string[];
export declare const makeNextIconClass: () => string[];
export declare const REG_SHORTCUTS: RegExp;
export declare const availableShortcuts: Record<string, {
    label: string;
    date: (now: Moment) => Moment;
}>;
export declare const advancedShortcuts: readonly [{
    readonly regexp: RegExp;
    readonly resolve: (__: TranslateFn, _: string, hours: string) => {
        label: string;
        date: (now: moment.Moment) => Moment;
    };
}, {
    readonly regexp: RegExp;
    readonly resolve: (__: TranslateFn, _: string, hours: string) => {
        label: string;
        date: (now: moment.Moment) => Moment;
    };
}, {
    readonly regexp: RegExp;
    readonly resolve: (__: TranslateFn, _: string, days: string) => {
        label: string;
        date: (now: moment.Moment) => Moment;
    };
}, {
    readonly regexp: RegExp;
    readonly resolve: (__: TranslateFn, _: string, days: string) => {
        label: string;
        date: (now: moment.Moment) => Moment;
    };
}, {
    readonly regexp: RegExp;
    readonly resolve: (__: TranslateFn, _: string, weeks: string) => {
        label: string;
        date: (now: moment.Moment) => Moment;
    };
}, {
    readonly regexp: RegExp;
    readonly resolve: (__: TranslateFn, _: string, weeks: string) => {
        label: string;
        date: (now: moment.Moment) => Moment;
    };
}, {
    readonly regexp: RegExp;
    readonly resolve: (__: TranslateFn, _: string, months: string) => {
        label: string;
        date: (now: moment.Moment) => Moment;
    };
}, {
    readonly regexp: RegExp;
    readonly resolve: (__: TranslateFn, _: string, months: string) => {
        label: string;
        date: (now: moment.Moment) => Moment;
    };
}, {
    readonly regexp: RegExp;
    readonly resolve: (__: TranslateFn, _: string, quarters: string) => {
        label: string;
        date: (now: moment.Moment) => Moment;
    };
}, {
    readonly regexp: RegExp;
    readonly resolve: (__: TranslateFn, _: string, quarters: string) => {
        label: string;
        date: (now: moment.Moment) => Moment;
    };
}, {
    readonly regexp: RegExp;
    readonly resolve: (__: TranslateFn, _: string, years: string) => {
        label: string;
        date: (now: moment.Moment) => Moment;
    };
}, {
    readonly regexp: RegExp;
    readonly resolve: (__: TranslateFn, _: string, years: string) => {
        label: string;
        date: (now: moment.Moment) => Moment;
    };
}];
/**
 * 格式化日期选择器的快捷键
 */
export declare const formatShortcuts: (__: TranslateFn, shortcuts?: Shortcuts | string) => Array<{
    label: string;
    key?: string;
    date: (now?: Moment) => Moment;
}>;
export declare const availableRanges: Record<string, {
    label: string;
    startDate: (now: Moment) => Moment;
    endDate: (now: Moment) => Moment;
}>;
export declare const advancedRanges: readonly [{
    readonly regexp: RegExp;
    readonly resolve: (__: TranslateFn, _: string, hours: string) => {
        label: string;
        startDate: (now: moment.Moment) => Moment;
        endDate: (now: moment.Moment) => Moment;
    };
}, {
    readonly regexp: RegExp;
    readonly resolve: (__: any, _: string, hours: string) => {
        label: any;
        startDate: (now: moment.Moment) => Moment;
        endDate: (now: moment.Moment) => Moment;
    };
}, {
    readonly regexp: RegExp;
    readonly resolve: (__: any, _: string, days: string) => {
        label: any;
        startDate: (now: moment.Moment) => Moment;
        endDate: (now: moment.Moment) => Moment;
    };
}, {
    readonly regexp: RegExp;
    readonly resolve: (__: any, _: string, days: string) => {
        label: any;
        startDate: (now: moment.Moment) => Moment;
        endDate: (now: moment.Moment) => Moment;
    };
}, {
    readonly regexp: RegExp;
    readonly resolve: (__: any, _: string, weeks: string) => {
        label: any;
        startDate: (now: moment.Moment) => Moment;
        endDate: (now: moment.Moment) => Moment;
    };
}, {
    readonly regexp: RegExp;
    readonly resolve: (__: any, _: string, weeks: string) => {
        label: any;
        startDate: (now: moment.Moment) => Moment;
        endDate: (now: moment.Moment) => Moment;
    };
}, {
    readonly regexp: RegExp;
    readonly resolve: (__: any, _: string, months: string) => {
        label: any;
        startDate: (now: moment.Moment) => Moment;
        endDate: (now: moment.Moment) => Moment;
    };
}, {
    readonly regexp: RegExp;
    readonly resolve: (__: any, _: string, months: string) => {
        label: any;
        startDate: (now: moment.Moment) => Moment;
        endDate: (now: moment.Moment) => Moment;
    };
}, {
    readonly regexp: RegExp;
    readonly resolve: (__: any, _: string, quarters: string) => {
        label: any;
        startDate: (now: moment.Moment) => Moment;
        endDate: (now: moment.Moment) => Moment;
    };
}, {
    readonly regexp: RegExp;
    readonly resolve: (__: any, _: string, quarters: string) => {
        label: any;
        startDate: (now: moment.Moment) => Moment;
        endDate: (now: moment.Moment) => Moment;
    };
}, {
    readonly regexp: RegExp;
    readonly resolve: (__: any, _: string, years: string) => {
        label: any;
        startDate: (now: moment.Moment) => Moment;
        endDate: (now: moment.Moment) => Moment;
    };
}, {
    readonly regexp: RegExp;
    readonly resolve: (__: any, _: string, years: string) => {
        label: any;
        startDate: (now: moment.Moment) => Moment;
        endDate: (now: moment.Moment) => Moment;
    };
}];
export declare const formatRanges: (__: TranslateFn, ranges?: DateRangePickerProps["ranges"]) => Array<{
    label: string;
    startDate: (now?: Moment) => Moment;
    endDate: (now?: Moment) => Moment;
    key?: string;
}>;
