import { LitElement, TemplateResult } from 'lit';
import './internals/DatePickerCalendar.js';
import '../../md/text-field/ui-outlined-text-field.js';
import '../../md/icons/ui-icon.js';
/**
 * A docked date picker that opens from a text field input.
 * Ideal for forms and date selection in medium to large layouts.
 *
 * ## Features
 * - Text field input with calendar dropdown
 * - Keyboard navigation support (Arrow Down, Enter, Escape)
 * - Custom date formatting
 * - Input validation and error handling
 * - Min/max date constraints
 * - Disabled dates support
 * - Accessible design with proper ARIA attributes
 * - CSS Anchor Positioning API for dropdown placement
 *
 * ## Events
 *
 * ### `change`
 * Fired when the selected date changes.
 *
 * **Detail:**
 * ```typescript
 * {
 *   value: Date | null,
 *   formattedValue: string
 * }
 * ```
 *
 * ## Usage
 *
 * ### Basic usage
 * ```html
 * <ui-date-picker-input
 *   label="Select date"
 *   name="birthDate"
 *   placeholder="MM/DD/YYYY"
 *   .value=${new Date()}
 *   @change=${this.handleDateChange}
 * ></ui-date-picker-input>
 * ```
 *
 * ### With validation
 * ```html
 * <ui-date-picker-input
 *   label="Birth date"
 *   name="birthDate"
 *   required
 *   .error=${this.hasError}
 *   .errorMessage=${"Please select a valid date"}
 *   .minDate=${new Date('1900-01-01')}
 *   .maxDate=${new Date()}
 * ></ui-date-picker-input>
 * ```
 *
 * ### Custom date format
 * ```html
 * <ui-date-picker-input
 *   label="Birth date"
 *   .dateFormat=${date => date.toLocaleDateString('en-GB')}
 * ></ui-date-picker-input>
 * ```
 *
 * ### With disabled dates
 * ```html
 * <ui-date-picker-input
 *   label="Appointment date"
 *   .disabledDates=${[new Date('2024-12-25'), new Date('2024-01-01')]}
 * ></ui-date-picker-input>
 * ```
 */
export declare class UiDatePickerInput extends LitElement {
    static styles: import("lit").CSSResult;
    static shadowRootOptions: ShadowRootInit;
    /**
     * The label for the input field
     */
    accessor label: string;
    /**
     * The name attribute for the input field (for form handling)
     */
    accessor name: string;
    /**
     * Placeholder text for the input
     */
    accessor placeholder: string;
    /**
     * The currently selected date
     */
    accessor value: Date | null;
    /**
     * Whether the date picker is disabled
     */
    accessor disabled: boolean;
    /**
     * Whether the input is required
     */
    accessor required: boolean;
    /**
     * Error message to display
     */
    accessor errorMessage: string;
    /**
     * Whether the input has an error state
     */
    accessor error: boolean;
    /**
     * Minimum selectable date
     */
    accessor minDate: Date | undefined;
    /**
     * Maximum selectable date
     */
    accessor maxDate: Date | undefined;
    /**
     * Array of disabled dates
     */
    accessor disabledDates: Date[] | undefined;
    /**
     * Locale for date formatting
     */
    accessor locale: string | undefined;
    /**
     * Custom date format function
     */
    accessor dateFormat: ((date: Date) => string) | undefined;
    private accessor isOpen;
    private accessor inputValue;
    private accessor textField;
    constructor();
    connectedCallback(): void;
    disconnectedCallback(): void;
    willUpdate(changedProperties: Map<string | number | symbol, unknown>): void;
    updated(changedProperties: Map<string | number | symbol, unknown>): void;
    private updateInputValue;
    private handleDocumentClick;
    private handleInputClick;
    private handleInputChange;
    private handleCalendarDateSelect;
    private handleCalendarDateCancel;
    private handleKeyDown;
    private dispatchChangeEvent;
    private renderCalendarIcon;
    private renderDropdown;
    render(): TemplateResult;
}
declare global {
    interface HTMLElementTagNameMap {
        'ui-date-picker-input': UiDatePickerInput;
    }
    interface HTMLElementEventMap {
        change: CustomEvent<{
            value: Date | null;
            formattedValue: string;
        }>;
    }
}
//# sourceMappingURL=ui-date-picker-input.d.ts.map