import { default as dayjs } from "dayjs";
import { InjectionToken } from "@angular/core";
import { DateAdapter } from "@angular/material/core";
import { MatDateFormats } from "@angular/material/core";
import * as i0 from "@angular/core";
/** Configurable options for {@see DayjsDateAdapter}. */
export interface DayjsDateAdapterOptions {
    /**
     * Turns the use of utc dates on or off.
     * Changing this will change how Angular Material components like DatePicker output dates.
     * {@default false}
     */
    useUtc: boolean;
}
export declare const DAYJS_DATE_FORMATS: MatDateFormats;
/** InjectionToken for dayjs date adapter to configure options. */
export declare const DAYJS_DATE_ADAPTER_OPTIONS: InjectionToken<DayjsDateAdapterOptions>;
/** @docs-private */
export declare function DAYJS_DATE_ADAPTER_OPTIONS_FACTORY(): DayjsDateAdapterOptions;
/** Adapts dayjs Dates for use with Angular Material. */
export declare class DayjsDateAdapter extends DateAdapter<dayjs.Dayjs> {
    private options?;
    private _localeData;
    constructor(dateLocale: string, options?: DayjsDateAdapterOptions);
    setLocale(dateLocale: string): void;
    getYear(date: dayjs.Dayjs): number;
    getMonth(date: dayjs.Dayjs): number;
    getDate(date: dayjs.Dayjs): number;
    getDayOfWeek(date: dayjs.Dayjs): number;
    getMonthNames(style: "long" | "short" | "narrow"): string[];
    getDateNames(): string[];
    getDayOfWeekNames(style: "long" | "short" | "narrow"): string[];
    getYearName(date: dayjs.Dayjs): string;
    getFirstDayOfWeek(): number;
    getNumDaysInMonth(date: dayjs.Dayjs): number;
    clone(date: dayjs.Dayjs, format?: string): dayjs.Dayjs;
    new(date?: any, format?: any): dayjs.Dayjs;
    createDate(year: number, month: number, date: number): dayjs.Dayjs;
    today(): dayjs.Dayjs;
    parse(value: any): dayjs.Dayjs | null;
    format(date: dayjs.Dayjs, displayFormat: string): string;
    addCalendarYears(date: dayjs.Dayjs, years: number): dayjs.Dayjs;
    addCalendarMonths(date: dayjs.Dayjs, months: number): dayjs.Dayjs;
    addCalendarDays(date: dayjs.Dayjs, days: number): dayjs.Dayjs;
    toIso8601(date: dayjs.Dayjs): string;
    /**
     * Returns the given value if given a valid dayjs or null. Deserializes valid ISO 8601 strings
     * (https://www.ietf.org/rfc/rfc3339.txt) and valid Date objects into valid dayjss and empty
     * string into null. Returns an invalid date for all other values.
     */
    deserialize(value: any): dayjs.Dayjs | null;
    isDateInstance(obj: any): boolean;
    isValid(date: dayjs.Dayjs): boolean;
    invalid(): dayjs.Dayjs;
    /** Creates a dayjs instance */
    private _createDayjs;
    static ɵfac: i0.ɵɵFactoryDeclaration<DayjsDateAdapter, [{ optional: true; }, { optional: true; }]>;
    static ɵprov: i0.ɵɵInjectableDeclaration<DayjsDateAdapter>;
}
//# sourceMappingURL=date-functions.d.ts.map