import { CSSResultArray, nothing, PropertyValues, TemplateResult } from 'lit'; import { Focusable } from '../../utils/focusable'; import '../calendar'; import '../icon'; import '../overlay'; import '../picker-button'; import '../popover'; import { EditableSegment } from '../date-time-picker/shared/segments/editable-segment'; import { LiteralSegment } from '../date-time-picker/shared/segments/literal-segment'; import { Precision } from '../date-time-picker/shared/types'; import { Placement } from '../overlay/overlay-types'; import type { DateRangePickerLabels, DefinedRange } from './types'; declare const LuzmoDateRangePicker_base: typeof Focusable & { new (...args: any[]): import("../..").SizedElementInterface; prototype: import("../..").SizedElementInterface; } & { new (...args: any[]): import("../text-field/manage-help-text").HelpTextElementInterface; prototype: import("../text-field/manage-help-text").HelpTextElementInterface; }; /** * @element luzmo-date-range-picker * * @event change - Announces when a new date range is committed by the user * @event input - Announces when the user's input changes the component's segments * * @slot calendar-icon - The icon used in the calendar button * @slot help-text - Default or non-negative help text to associate to your form element * @slot negative-help-text - Negative help text to associate to your form element when `invalid` */ export declare class LuzmoDateRangePicker extends LuzmoDateRangePicker_base { static get styles(): CSSResultArray; /** * The start date of the range (ISO date string, e.g. '2024-01-15') */ startDate?: string; /** * The end date of the range (ISO date string, e.g. '2024-01-20') */ endDate?: string; /** * The minimum valid date a user can select */ min?: string; /** * The maximum valid date a user can select */ max?: string; /** * The date format to use for display. Can be 'mmdd', 'ddmm', or undefined (uses locale default). */ dateFormat?: 'mmdd' | 'ddmm'; /** * The separator to use between date segments (month, day, and year). */ dateSeparator?: string; /** * The granularity used to display the segments. 'day' shows only date, * while 'hour', 'minute', 'second', or 'millisecond' add time segments. */ precision: Precision; /** * Number of side-by-side calendars in the popover (1 or 2) */ calendars: 1 | 2; /** * Whether to show the predefined date ranges panel in the popover. */ showDefinedRanges: boolean; /** * Predefined date ranges displayed as quick-select options. * Defaults use English labels. For other locales, provide your own * `DefinedRange[]` with translated labels. */ definedRanges: DefinedRange[]; /** * Whether the `value` held by the form control is invalid. */ invalid: boolean; /** * Whether a user can interact with the value of the form control */ readonly: boolean; /** * Whether to display the form control with no visible background */ quiet: boolean; /** * Popover placement */ placement: Placement; /** * The IANA time zone identifier to use for interpreting dates (e.g. 'America/New_York'). * If not specified, the user's local time zone is used. */ timeZone?: string; /** * BCP 47 locale string */ language: string; /** * Labels read by screen readers. */ labels: DateRangePickerLabels; focused: boolean; /** @internal */ private _startDate?; /** @internal */ private _endDate?; /** @internal */ private startSegments; /** @internal */ private endSegments; /** @internal */ private isCalendarOpen; /** @internal – displayed month of left calendar (ISO date string of 1st of month) */ private _leftMonth?; /** @internal – displayed month of right calendar (ISO date string of 1st of month) */ private _rightMonth?; /** @internal */ firstEditableSegment: HTMLDivElement; /** @internal */ private rangeWrapper; /** @internal */ get _language(): string; /** @internal */ private _timeZone; /** @internal – skip month sync when dates change from calendar interaction */ private _skipMonthSync; /** @internal */ private dateFormatter; /** @internal */ private ariaDateFormatter; /** @internal */ private numberParser; /** @internal */ get focusElement(): HTMLElement; clear(): void; constructor(); private handleFocusIn; private handleFocusOut; protected willUpdate(changedProperties: PropertyValues): void; private initCalendarMonths; private syncCalendarMonths; private parseDateValue; private parseAllDates; private updateAriaLabel; render(): TemplateResult; private renderStateIcons; renderPicker(): TemplateResult | typeof nothing; private renderPopoverContent; private renderSingleCalendar; private renderDualCalendar; private renderDefinedRanges; private isDefinedRangeSelected; private selectDefinedRange; private handleRangeSelect; private handleHoverDateLeft; private handleHoverDateRight; renderStartInput(): TemplateResult; renderEndInput(): TemplateResult; private renderSegmentsFor; renderLiteralSegment(segment: LiteralSegment): TemplateResult; renderEditableSegment(segment: EditableSegment): TemplateResult; private getSegments; private setSegmentsForField; private getModifierParams; private handleKeydown; private handleInput; private focusSegment; private updateValueFromSegments; private commitValue; private handleLeftMonthChange; private handleRightMonthChange; private dispatchChange; private dispatchInputEvent; private setStartSegments; private setEndSegments; private createSegmentsFromDate; private setNumberParser; private setDateFormatter; private setAriaDateFormatter; private getTimeOptions; } export {};