import { LitElement, type PropertyValues, type TemplateResult } from 'lit';
export interface DateCell {
    date: Date;
    label: string;
    isToday: boolean;
    notCurrentMonth: boolean;
    selected?: boolean;
    tabIndex?: number;
}
declare const DatePicker_base: typeof LitElement & import("@blockeditor/global/utils").Constructor<import("@blockeditor/lit").DisposableClass>;
/**
 * Date picker
 */
export declare class DatePicker extends DatePicker_base {
    static styles: import("lit").CSSResult;
    /** Checked date timestamp */
    value?: number;
    onChange?: (value: Date) => void;
    /** card padding in px */
    padding: number;
    /** cell size in px */
    size: number;
    /** horizontal gap between cells in px */
    gapH: number;
    /** vertical gap between cells in px */
    gapV: number;
    /** current active month */
    private _cursor;
    /** web-accessibility for month select */
    private _monthCursor;
    private _yearCursor;
    private _monthPickYearCursor;
    /** date matrix */
    private _matrix;
    private _yearMatrix;
    private _mode;
    private _maxYear;
    private _minYear;
    get year(): number;
    get month(): number;
    get date(): number;
    get day(): number;
    get yearLabel(): number;
    get monthLabel(): string;
    get dayLabel(): string;
    get cardWidth(): number;
    get cardHeight(): number;
    get minHeight(): number;
    get _cardStyle(): {
        '--cell-size': string;
        '--gap-h': string;
        '--gap-v': string;
        'min-width': string;
        'min-height': string;
        padding: string;
    };
    /**
     * Focus on date-cell
     */
    focusDateCell(): void;
    /**
     * check if date-cell is focused
     * @returns
     */
    isDateCellFocused(): boolean;
    focusMonthCell(): void;
    isMonthCellFocused(): boolean;
    focusYearCell(): void;
    isYearCellFocused(): boolean;
    openMonthSelector(): void;
    closeMonthSelector(): void;
    toggleMonthSelector(): void;
    openYearSelector(): void;
    closeYearSelector(): void;
    toggleYearSelector(): void;
    private _moveMonth;
    private _modeDecade;
    private _onChange;
    private _getMatrix;
    private _getYearMatrix;
    firstUpdated(): void;
    private _switchMode;
    updated(_changedProperties: PropertyValues): void;
    connectedCallback(): void;
    /** Actions */
    private _navAction;
    /** Week header */
    private _dayHeaderRenderer;
    /** Cell */
    private _cellRenderer;
    private _dateContent;
    private _monthContent;
    private _yearContent;
    render(): TemplateResult<1>;
}
declare global {
    interface HTMLElementTagNameMap {
        'date-picker': DatePicker;
    }
}
export {};
//# sourceMappingURL=date-picker.d.ts.map