/** * Copyright Aquera Inc 2026 * * This source code is licensed under the BSD-3-Clause license found in the * LICENSE file in the root directory of this source tree. */ import NileElement from '../internal/nile-element'; import type { CSSResultGroup, PropertyValues } from 'lit'; import type { NileFormControl } from '../internal/nile-element'; import { WallClock } from './nile-timestamp-builder-utils'; /** * @event nile-init - Emitted when the component is added to the DOM. * @event nile-destroy - Emitted when the component is removed from the DOM. * @event nile-change - Emitted when the value is committed. * @event nile-input - Emitted as fields change, before the value is committed. * @event nile-expand - Emitted when the editor opens. * @event nile-collapse - Emitted when the editor closes. * @event nile-copy - Emitted after the value is written to the clipboard. * @event nile-copy-error - Emitted when the clipboard write is refused. */ export declare class NileTimestampBuilder extends NileElement implements NileFormControl { static get styles(): CSSResultGroup; private formControlController; private internalValueUpdate; private internalTimezoneUpdate; valueInput: HTMLInputElement; private _value; get value(): Date | null; set value(input: Date | number | string | null); defaultValue: Date | null; timezone: string; name: string; disabled: boolean; required: boolean; readonly: boolean; copyable: boolean; form: string; open: boolean; label: string; minYear: number; maxYear: number; wallClock: WallClock; timezoneList: string[]; hasValue: boolean; justCopied: boolean; get validity(): ValidityState; get validationMessage(): string; connectedCallback(): void; disconnectedCallback(): void; protected willUpdate(changedProperties: PropertyValues): void; protected updated(changedProperties: PropertyValues): void; private isTimezoneReassigned; private syncValueToTimezone; private valueString; private syncHiddenInput; private changeDetail; private liveDetail; private commit; private onFieldChange; private onTimezoneChange; private handleSetNow; /** Copies the canonical zoned value */ private handleCopy; private handleStageNow; private handleUseLocalTz; private handleUseUtc; /** Touch input has no reliable `dblclick`, so double-taps are timed by hand. */ private static readonly DOUBLE_TAP_MS; private static readonly COPIED_FEEDBACK_MS; private lastTapAt; private copiedTimer; private handleDisplayDoubleClick; private handleDisplayPointerUp; /** Keyboard equivalent of the double-click/double-tap edit affordance. */ private handleDisplayKeyDown; private handleEdit; private handleDone; checkValidity(): boolean; reportValidity(): boolean; setCustomValidity(message: string): void; getForm(): HTMLFormElement | null; private renderField; private renderCollapsed; private renderEditActions; private renderCopyAction; private renderExpanded; render(): import("lit-html").TemplateResult<1>; } export default NileTimestampBuilder; declare global { interface HTMLElementTagNameMap { 'nile-timestamp-builder': NileTimestampBuilder; } }