import { DateInput, DatePickerOptions, DatePickerState } from './date-picker.types';
/**
* Headless date picker. Owns a calendar grid it renders into the consumer's
* markup, manages selection/navigation state, ARIA wiring, keyboard support and
* floating-ui positioning. No visual styling is applied in JS — state is
* reflected via `data-state`, `data-today`, `data-outside` and `aria-*`.
*
* Markup:
* ```html
*
* ```
*/
export declare class DatePicker {
private readonly root;
private readonly trigger;
private readonly panel;
private readonly grid;
private readonly valueEl;
private readonly labelEl;
private readonly prevBtn;
private readonly nextBtn;
private readonly locale;
private readonly weekStartsOn;
private readonly placeholder;
private readonly closeOnSelect;
private readonly placement;
private readonly offset;
private readonly formatLabel?;
private readonly min;
private readonly max;
private readonly mode;
private selected;
private rangeStart;
private rangeEnd;
private hoverDate;
private viewMonth;
private focused;
private open;
private stopAutoUpdate;
private cleanups;
constructor(root: HTMLElement, options?: DatePickerOptions);
private init;
private renderLabel;
private format;
private weekdayNames;
private isDisabled;
private renderGrid;
private renderDay;
private onGridClick;
private onGridMouseover;
private onGridKeydown;
private moveFocus;
private focusActiveDay;
private goToMonth;
private select;
private selectRange;
private emitChange;
private onOutside;
toggle(): void;
openPanel(): void;
close(): void;
/** Programmatically set the selected date (ISO string or Date). */
setValue(value: DateInput | null): void;
/** Clear the current selection. */
clear(): void;
private position;
get value(): string | null;
get isOpen(): boolean;
getState(): DatePickerState;
on(event: string, handler: (event: E) => void): () => void;
destroy(): void;
}