import { format } from 'date-fns';
import { RANGE_POSITION } from './const';
import type { DateObj, ParticalDateObj } from './interface';
export declare function strictParse(string: string, pattern: string, backup: Date): Date;
export declare const isEmptyValue: (val: any) => boolean;
declare function timeFormat(date: null, format: string): null;
declare function timeFormat(date: number | Date, format: string): string;
export { timeFormat };
export declare const contrastDate: (date1: number | Date, date2: number | Date, format?: string) => 0 | 1 | -1;
export declare const parseDate: (date?: number | Date) => {
    year: number;
    month: number;
    day: number;
    hour: number;
    minute: number;
    second: number;
};
export declare const pickTime: (dateObj: DateObj) => {
    hour: number;
    minute: number;
    second: number;
};
export declare function dateObjToDate(date: ParticalDateObj, isFullMax?: boolean): Date;
export declare function transformDateToTimestamp(date: ParticalDateObj, isFullMax?: boolean): number;
export declare const padStartZero: (target: number | string, len?: number) => string;
export declare const getTimestampFromFormat: (date: Date | null, format: string, isFullMax?: boolean) => number;
export declare const transformTimeToDate: (timeStr: string) => {
    hour: number;
    minute: number;
    second: number;
};
export declare const fillDate: ({ dateObj, format, defaultTime, rangePosition, }: {
    dateObj: ParticalDateObj;
    format: string;
    defaultTime?: string | string[];
    rangePosition?: (typeof RANGE_POSITION)[keyof typeof RANGE_POSITION];
}) => DateObj;
export declare const getDefaultTime: (defaultTime?: string | string[], rangePosition?: (typeof RANGE_POSITION)[keyof typeof RANGE_POSITION], hasTime?: boolean) => {
    hour?: number;
    minute?: number;
    second?: number;
};
export declare const isBeyondRangeTime: (option: {
    currentDate: Date;
    format: string;
    flagDate?: Date;
    maxRange?: string;
}) => boolean;
