import { EventEmitter } from '../../stencil-public-runtime'; import { PickerValidityStateTracker } from '../input/input.util'; import { IxInputFieldComponent, ValidationResults } from '../utils/input'; import { MakeRef } from '../utils/make-ref'; import { DateTimeInputValidityState } from './datetime-input.types'; import { InputPickerMixinContract } from '../utils/internal/mixins/input/input-picker.mixin'; declare const DatetimeInput_base: abstract new (...args: any[]) => { componentDidLoad(): void; disconnectedCallback(): void; hostElement?: import("@stencil/core/internal").HTMLStencilElement; connectedCallback?(): void; componentWillRender?(): Promise | void; componentDidRender?(): void; componentWillLoad?(): Promise | void; componentShouldUpdate?(newVal: any, oldVal: any, propName: string): boolean | void; componentWillUpdate?(): Promise | void; componentDidUpdate?(): void; render?(): any; } & import("../utils/internal/component").StencilLifecycle; /** * @since 5.0.0 * @form-ready * * @slot start - Element will be displayed at the start of the input * @slot end - Element will be displayed at the end of the input */ export declare class DatetimeInput extends DatetimeInput_base implements IxInputFieldComponent, InputPickerMixinContract { hostElement: HTMLIxDatetimeInputElement; formInternals: ElementInternals; /** Name of the form control for form submission */ name?: string; /** Placeholder text when input is empty */ placeholder?: string; /** Value in display format (e.g., "2026/01/21 13:07:04" for default format) */ value?: string; /** * Luxon date and time format for display (e.g., 'yyyy/LL/dd HH:mm:ss' → "2026/01/20 13:07:04"). * * See {@link https://moment.github.io/luxon/#/formatting?id=table-of-tokens} for all available tokens. */ format: string; /** Locale for date/time formatting (e.g., 'en-US', 'de-DE') */ locale?: string; /** Whether the field is required */ required: boolean; /** Whether the input is disabled */ disabled: boolean; /** Whether the input is read-only (calendar icon hidden) */ readonly: boolean; /** Minimum allowed date (matching format or date-only, e.g., "2026/01/20") */ minDate?: string; /** Maximum allowed date (matching format or date-only, e.g., "2026/12/31") */ maxDate?: string; /** * Earliest selectable time (tokens matching the time portion of `format`). Invalid non-empty values are ignored. * * @since 5.0.0 */ minTime?: string; /** * Latest selectable time (tokens matching the time portion of `format`). Invalid non-empty values are ignored. * * @since 5.0.0 */ maxTime?: string; /** Label text displayed above the input */ label?: string; /** Helper text displayed below the input */ helperText?: string; /** Validation message for invalid state */ invalidText?: string; /** Informational message */ infoText?: string; /** Warning message */ warningText?: string; /** Success/valid message */ validText?: string; /** Show helper text as tooltip instead of below input */ showTextAsTooltip: boolean; /** Error message when datetime cannot be parsed */ i18nErrorDateTimeUnparsable: string; /** Text for confirm button in picker (prop name matches datetime-picker) */ i18nDone: string; /** Header text for time picker section */ i18nTime: string; /** ARIA label for previous month navigation button */ ariaLabelPreviousMonthButton?: string; /** ARIA label for next month navigation button */ ariaLabelNextMonthButton?: string; /** * ARIA label for the calendar icon button * Will be set as aria-label on the nested HTML button element */ ariaLabelCalendarButton?: string; /** Show week numbers in date picker */ showWeekNumbers: boolean; /** First day of week (0=Sunday, 1=Monday, etc.) */ weekStartIndex: number; /** Prevent form submission when Enter is pressed */ suppressSubmitOnEnter: boolean; /** Text alignment within the input field */ textAlignment: 'start' | 'end'; /** * Enable Popover API rendering for dropdown. */ enableTopLayer: boolean; /** Emitted when the datetime value changes. Payload is display format or undefined */ valueChange: EventEmitter; /** Emitted when validation state changes */ validityStateChange: EventEmitter; /** Emitted when the input receives focus */ ixFocus: EventEmitter; /** Emitted when the input loses focus */ ixBlur: EventEmitter; /** * Emitted when the date/time value changes via user interaction. * * Fires in two scenarios: * - When the input loses focus (blur) and the value has changed * - When a new date/time is selected in the picker and confirmed * * Does NOT fire when: * - The picker is opened/closed without confirming a change * - The input is blurred without modifying the value * - The value is changed programmatically via the value property */ ixChange: EventEmitter; isInputInvalid: boolean; isInvalid: boolean; isValid: boolean; isInfo: boolean; isWarning: boolean; private readonly slotStartRef; private readonly slotEndRef; private readonly inputElementRef; private readonly dropdownElementRef; private readonly datetimePickerRef; show: boolean; from?: string | null; time?: string | null; private classObserver?; initialValue?: string; invalidReason?: string; touched: boolean; validityTracker: PickerValidityStateTracker; private disposableChangesAndVisibilityObservers?; watchValuePropHandler(newValue: string): void; watchMinTimePropHandler(): void; watchMaxTimePropHandler(): void; private get combinedFormat(); private get dateOnlyFormat(); private get timeOnlyFormat(); private syncPickerState; onInput(value: string | undefined): Promise; private parseConstraintDate; private validateConstraints; private getTimeConstraintBoundsForDate; private computeConstraintValidation; private revalidateCurrentValue; private handleInputKeyDown; private initPickerValues; onCalendarClick(event: Event): void; private openDropdown; private closeDropdown; updateFormInternalValue(value: string | undefined): void; /** * Returns whether the input has a value. * @internal */ hasValidValue(): Promise; /** * Returns the associated HTML form element. * @internal */ getAssociatedFormElement(): Promise; /** * Get the native input element * @internal */ getNativeInputElement(): Promise; /** * Focus the native input element * @internal */ focusInput(): Promise; /** * Returns whether the input field has been touched. * @internal */ isTouched(): Promise; /** * Returns the validity state of the input. * @internal */ getValidityState(): Promise; onInputValidationChange(): Promise; hookValidationLifecycle({ isInfo, isInvalid, isInvalidByRequired, isValid, isWarning, }: ValidationResults): void; private emitValidityStateChangeIfChanged; private emitChange; connectedCallback(): void; componentWillLoad(): void; private updatePaddings; disconnectedCallback(): void; private checkClassList; private readonly handleDateSelect; getPickerElement(): MakeRef | null; private renderInput; render(): any; } export {};