import '../divider/divider';
import '../icon/icon';
import '../popup/popup';
import { LocalizeController } from '../../utilities/localize';
import SolidElement from '../../internal/solid-element';
import type { SolidFormControl } from '../../internal/solid-element';
import type SdPopup from '../popup/popup';
export default class SdDatepicker extends SolidElement implements SolidFormControl {
    localize: LocalizeController;
    private readonly hasSlotController;
    private readonly formControlController;
    locale: string;
    value: string | null;
    range: boolean;
    rangeStart: string | null;
    rangeEnd: string | null;
    allowSameDayRange: boolean;
    min: string | number | Date | undefined;
    max: string | number | Date | undefined;
    viewMonth: Date | null;
    firstDayOfWeek: number | null;
    disabledWeekends: boolean;
    disabledDates: string[] | string;
    isDateDisabled: ((d: Date) => boolean) | null;
    size: 'lg' | 'md' | 'sm';
    alignment: 'left' | 'right';
    label: string;
    helpText: string;
    floatingLabel: boolean;
    disabled: boolean;
    required: boolean;
    visuallyDisabled: boolean;
    styleOnValid: boolean;
    readonly: boolean;
    placement: 'top' | 'bottom';
    placeholder: string;
    name: string;
    form: string;
    private open;
    private focusedDate;
    private today;
    private disabledDatesSet;
    private previewEnd;
    private statusNavText;
    private statusSelectText;
    hasFocus: boolean;
    showValidStyle: boolean;
    showInvalidStyle: boolean;
    currentPlacement: "top" | "bottom";
    private inputValue;
    popup: SdPopup;
    invalidMessage: HTMLDivElement;
    input: HTMLInputElement;
    private tabbingIntoGrid;
    private statusBumpCounter;
    constructor();
    connectedCallback(): void;
    firstUpdated(): void;
    handleOpenChange(): void;
    disconnectedCallback(): void;
    handleLocaleChange(): void;
    handleViewMonthChange(): void;
    handleDisabledDatesChange(): void;
    handleValueChange(): void;
    handleRangeChange(): void;
    handleDisabledChange(): void;
    handleSizeChange(): void;
    get validity(): ValidityState;
    get validationMessage(): string;
    checkValidity(): boolean;
    getForm(): HTMLFormElement | null;
    reportValidity(): boolean;
    setCustomValidity(message: string): void;
    private handleInvalid;
    private parseISO;
    private inMinMax;
    private isInDisabledDates;
    private isWeekend;
    private isDisabled;
    private setNavStatus;
    private announceSelect;
    private formatSelectionLabel;
    private ordinal;
    private syncDisabledDatesSet;
    private wouldRangeContainDisabled;
    private termStartSelected;
    private termEndSelected;
    private isoToDmy;
    private dmyToIso;
    private formatInputValue;
    private parseInputText;
    private applyParsedInput;
    private buildDmyFromDigits;
    private digitIndexToDmyCaretPos;
    private countDigitsBeforeCaret;
    private handleOutsideClick;
    private onFocusOut;
    show(): void;
    hide(): void;
    private onFocusIn;
    private handleMouseDown;
    private handleBlur;
    private handleFocus;
    private handleInput;
    private handleInputBlur;
    private handleCurrentPlacement;
    private setMonth;
    private setYear;
    private focusInitialGridDay;
    private handleHeaderKeyDown;
    private selectSingleDate;
    private selectRangeDate;
    private selectDate;
    private onKeyDown;
    private handleInputKeyDown;
    private ensureViewMonth;
    private getMonthMatrix;
    private formatMonthYear;
    private weekdayLabels;
    private getTabTargetDayForCurrentView;
    private onDayMouseEnter;
    private onGridMouseLeave;
    private renderCalendar;
    render(): import("lit").TemplateResult<1>;
    static styles: import("lit").CSSResult[];
}
declare global {
    interface HTMLElementTagNameMap {
        'sd-datepicker': SdDatepicker;
    }
}
