import Moment from "moment";
import iMoment from "moment-hijri";
import DefaultMomentUtils from "@date-io/moment";
import { DateIOFormats } from "@date-io/core/IUtils";
interface Opts {
    instance?: typeof iMoment;
    formats?: Partial<DateIOFormats>;
}
type Moment = iMoment.Moment;
export default class MomentUtils extends DefaultMomentUtils {
    moment: typeof iMoment;
    lib: string;
    locale?: string;
    formats: DateIOFormats;
    constructor({ instance, formats }?: Opts);
    private toIMoment;
    parse: (value: string, format: string) => Moment.Moment | null;
    date<TArg extends unknown = undefined, TResultingDate extends unknown = TArg extends null ? null : TArg extends undefined ? Moment : Moment | null>(value?: TArg): TResultingDate;
    isBeforeYear: (date: Moment, value: Moment) => boolean;
    isAfterYear: (date: Moment, value: Moment) => boolean;
    getWeek: (date: Moment) => number;
    getMonth: (date: Moment) => number;
    getDaysInMonth: (date: Moment) => number;
    startOfYear: (date: Moment) => Moment.Moment;
    endOfYear: (date: Moment) => Moment.Moment;
    startOfMonth: (date: Moment) => Moment.Moment;
    endOfMonth: (date: Moment) => Moment.Moment;
    getNextMonth: (date: Moment) => Moment.Moment;
    getPreviousMonth: (date: Moment) => Moment.Moment;
    getYear: (date: Moment) => number;
    setYear: (date: Moment, year: number) => Moment.Moment;
    getDate: (date: Moment) => number;
    setDate: (date: Moment, year: number) => Moment.Moment;
    getMeridiemText: (ampm: "am" | "pm") => string;
    getWeekdays: () => string[];
    isEqual: (value: any, comparing: any) => boolean;
    formatNumber: (num: string) => string;
    getWeekArray: (date: Moment) => Moment.Moment[][];
    getYearRange: (start: Moment, end: Moment) => Moment.Moment[];
}
export {};
