import { Locale } from 'date-fns';
import { LitElement } from 'lit';
import '@warp-ds/icons/elements/calendar-16';
import '@warp-ds/icons/elements/chevron-left-16';
import '@warp-ds/icons/elements/chevron-right-16';
declare const WarpDatepicker_base: import("@open-wc/form-control").Constructor<import("@open-wc/form-control").FormControlInterface> & typeof LitElement;
/**
 * An input for dates.
 *
 * Uses the `lang` attribute on either the element or on `<html>` to determine the locale options.
 *
 * [See Storybook for usage examples](https://warp-ds.github.io/elements/?path=/docs/forms-datepicker--docs)
 */
declare class WarpDatepicker extends WarpDatepicker_base {
    #private;
    static shadowRootOptions: {
        delegatesFocus: boolean;
        mode: ShadowRootMode;
        serializable?: boolean;
        slotAssignment?: SlotAssignmentMode;
    };
    static styles: import("lit").CSSResult[];
    label: string;
    /** Takes precedence over the `<html>` lang attribute. */
    lang: string;
    name: string;
    value: string;
    /**
     * Decides the format of the date as shown in the calendar header.
     *
     * The syntax is defined by [date-fns/format](https://date-fns.org/v4.1.0/docs/format).
     */
    headerFormat: string;
    /**
     * Decides the format of the weekday as shown above the grid of dates in the calendar.
     *
     * The syntax is defined by [date-fns/format](https://date-fns.org/v4.1.0/docs/format).
     */
    weekdayFormat: string;
    /**
     * Lets you control if a date in the calendar should be disabled.
     *
     * This needs to be set on the element instance in JavaScript, not as an HTML attribute.
     *
     * @example
     * ```ts
     * import type { WarpDatepicker } from "@warp-ds/elements";
     * import { isBefore, startOfDay } from 'date-fns';
     *
     * const today = startOfDay(new Date());
     * const datePicker = document.querySelector('w-datepicker') as WarpDatepicker;
     * datePicker.isDayDisabled = (day: Date) => isBefore(startOfDay(day), today);
     * ```
     */
    isDayDisabled: (day: Date) => boolean;
    /**
     * Decides the format of the day in the calendar as read to screen readers.
     *
     * The syntax is defined by [date-fns/format](https://date-fns.org/v4.1.0/docs/format).
     */
    dayFormat: string;
    isCalendarOpen: boolean;
    navigationDate: Date;
    /** @internal This gets picked up by the custom element manifest analyzer as a property for some reason */
    locale: Locale;
    get selectedDate(): Date | null;
    get month(): Date;
    get weeks(): import("date-fns").EachDayOfIntervalResult<{
        start: Date;
        end: Date;
    }, undefined>[];
    calendar: HTMLDivElement;
    input: HTMLInputElement;
    toggleButton: HTMLButtonElement;
    wrapper: HTMLDivElement;
    /**
     * This is the first focusable element, needed for the modal focus trap.
     *
     * Don't cache this and other `@query` fields from inside the calendar modal.
     * They work the first time, but once the calendar is closed and reopened
     * the query will point to an element that doesn't exist anymore.
     */
    previousMonthButton: HTMLButtonElement;
    todayCell: HTMLTableCellElement;
    selectedCell: HTMLTableCellElement;
    resetFormControl(): void;
    /**
     * We can't use private fields (`#` prefix) for this method
     * since we can't overwrite private field methods. We need
     * to `.bind(this)` in the constructor because we need one
     * stable method handler we can register and unregister on
     * `document`, that has access to this specific instance
     * of WarpDatepicker to control the calendar.
     * @internal
     */
    private _onClickOutside;
    constructor();
    connectedCallback(): void;
    disconnectedCallback(): void;
    updated(changedProperties: Map<string, unknown>): void;
    render(): import("lit").TemplateResult<1>;
}
export { WarpDatepicker };
