import { PropertyValues, TemplateResult } from 'lit';
import { PktElement } from '../../base-elements/element';
export declare class PktCalendar extends PktElement {
    selected: string | string[];
    multiple: boolean;
    maxMultiple: number;
    range: boolean;
    earliest: string | null;
    latest: string | null;
    excludedates: Date[];
    excludeweekdays: string[];
    weeknumbers: boolean;
    withcontrols: boolean;
    currentmonth: Date | null;
    today: string | null;
    dayStrings: string[];
    dayStringsLong: string[];
    monthStrings: string[];
    weekString: string;
    prevMonthString: string;
    nextMonthString: string;
    private _selected;
    private inRange;
    private rangeHovered;
    private get todayDate();
    private year;
    private month;
    private week;
    private currentmonthtouched;
    private focusedDate;
    private selectableDates;
    private tabIndexSet;
    /**
     * Lifecycle methods
     */
    protected firstUpdated(_changedProperties: PropertyValues): void;
    disconnectedCallback(): void;
    updated(changedProperties: PropertyValues): void;
    /**
     * Date and selection management
     */
    private convertSelected;
    private setCurrentMonth;
    /**
     * Keyboard navigation
     */
    private handleKeydown;
    private handleArrowKey;
    /**
     * Rendering methods
     */
    render(): TemplateResult<1>;
    private renderMonthNavButton;
    private renderDayNames;
    private renderMonthNav;
    private getDayViewData;
    private getDateConstraints;
    private isDayDisabled;
    private calculateTabIndex;
    private getDayCellClasses;
    private getDayButtonClasses;
    private handleDayFocus;
    private renderDayView;
    private renderEmptyDayCell;
    private renderWeekRow;
    private renderCalendarBody;
    /**
     * Date validation
     */
    private isExcluded;
    /**
     * Month navigation
     */
    isPrevMonthAllowed(): boolean;
    private prevMonth;
    isNextMonthAllowed(): boolean;
    private nextMonth;
    private changeMonth;
    /**
     * Date selection logic
     */
    private emptySelected;
    private normalizeSelected;
    addToSelected(selectedDate: Date): void;
    removeFromSelected(selectedDate: Date): void;
    toggleSelected(selectedDate: Date): void;
    private isRangeAllowed;
    private handleRangeSelect;
    private handleRangeHover;
    handleDateSelect(selectedDate: Date | null): Promise<void>;
    /**
     * Focus management and event handlers
     */
    focusOnCurrentDate(): void;
    closeEvent(e: FocusEvent): void;
    close(): void;
}
