import { TimePickerOptions, TimePickerState } from './time-picker.types';
/**
* Headless time picker. Owns hour/minute inputs and an optional AM/PM toggle,
* commits a 24h `HH:MM` value on confirm and reflects open state via
* `data-state`. Positioning via floating-ui; no visual styling in JS.
*
* Markup:
* ```html
*
* ```
*/
export declare class TimePicker {
private readonly root;
private readonly trigger;
private readonly panel;
private readonly valueEl;
private readonly hourInput;
private readonly minuteInput;
private readonly periodBtn;
private readonly confirmBtn;
private readonly cancelBtn;
private readonly format;
private readonly minuteStep;
private readonly placeholder;
private readonly closeOnConfirm;
private readonly placement;
private readonly offset;
private selected;
private period;
private open;
private stopAutoUpdate;
private cleanups;
constructor(root: HTMLElement, options?: TimePickerOptions);
private init;
/** Strip non-digits and clamp the field to its max as the user types. */
private sanitize;
private renderLabel;
private formatDisplay;
/** Populate the inputs/period from the current selection (or now). */
private syncInputs;
private nowParsed;
private togglePeriod;
private renderPeriod;
/** Read the inputs into a normalized 24h Parsed value. */
private readInputs;
confirm(): void;
cancel(): void;
private emitChange;
private onOutside;
toggle(): void;
openPanel(): void;
close(): void;
/** Programmatically set the time (24h `HH:MM`). */
setValue(value: string | null): void;
clear(): void;
private position;
get value(): string | null;
get isOpen(): boolean;
getState(): TimePickerState;
on(event: string, handler: (event: E) => void): () => void;
destroy(): void;
}