/** * - a form-associated time picker custom element. * * Design notes: * - The controller owns all time state; this file only renders it and turns * user gestures into controller calls. Display is always derived, never * stored, which is what stops value and label drifting apart. * - Every listener is registered with the same AbortSignal, so disconnecting * tears down the whole component with one abort() and cannot leak. * - The panel is a real popover, so the top layer, light dismiss and Escape * are the browser's job rather than ours. */ import { type HourCycle, type Meridiem } from './controller.js'; import { type Placement } from './position.js'; export declare class PickTimeElement extends HTMLElement { #private; static formAssociated: boolean; static observedAttributes: string[]; constructor(); connectedCallback(): void; disconnectedCallback(): void; attributeChangedCallback(name: string): void; get value(): string; set value(next: string); /** Structured view of the value, or `null` when empty. */ get valueAsObject(): { hours: number; minutes: number; seconds: number; meridiem: Meridiem | null; } | null; /** Seconds since midnight, or `null` when empty. */ get valueAsNumber(): number | null; set valueAsNumber(next: number | null); get name(): string; set name(next: string); get form(): HTMLFormElement | null; get labels(): NodeList; get validity(): ValidityState; get validationMessage(): string; get willValidate(): boolean; checkValidity(): boolean; reportValidity(): boolean; focus(options?: FocusOptions): void; /** Opens the picker. Mirrors `.showPicker()`. */ showPicker(): void; hidePicker(): void; get open(): boolean; get disabled(): boolean; set disabled(next: boolean); get required(): boolean; set required(next: boolean); get readOnly(): boolean; set readOnly(next: boolean); get seconds(): boolean; set seconds(next: boolean); get min(): string; set min(next: string); get max(): string; set max(next: string); get hourCycle(): HourCycle; set hourCycle(next: HourCycle); get locale(): string; set locale(next: string); get minuteStep(): number; set minuteStep(next: number); get secondStep(): number; set secondStep(next: number); get placement(): Placement; set placement(next: Placement); get offset(): number; set offset(next: number); get placeholder(): string; set placeholder(next: string); get theme(): string; set theme(next: string); get animation(): string; set animation(next: string); formResetCallback(): void; formDisabledCallback(disabled: boolean): void; formStateRestoreCallback(state: string | null): void; } /** * Registers the element, optionally under a custom tag name. Safe to call more * than once. Importing `picktime/element` registers nothing, so this is the * opt-in path; importing `picktime` calls it for you. * * A constructor can only back a single tag name in a registry, so any name * after the first gets a fresh subclass. That keeps a second registration from * throwing NotSupportedError when the package entry has already claimed * `pick-time`. */ export declare const definePickTime: (tagName?: string) => void; //# sourceMappingURL=element.d.ts.map