import { PropertyValues } from 'lit';
import { DDSFormElement } from "../../base/index.js";
import { DaikinInputGroup } from "../input-group/daikin-input-group.js";
/**
* The date picker component provides a date selection function that can be combined with forms. This component uses `daikin-calendar` internally (users do not need to nest this).
*
* @attr form - The form the component belongs to.
* @attr name - The form name, submitted as a name/value pair when submitting the form.
* @attr value - The initial form value, submitted as a name/value pair when submitting the form.
* @prop {String} formAttr - The form the component belongs to.
* @prop {String} name - The form name, submitted as a name/value pair when submitting the form.
* @prop {String} value - The form value, submitted as a name/value pair when submitting the form.
*
* @fires select - Fires when the date is selected.
*
* @example
*
* ```js
* import "@daikin-oss/design-system-web-components/components/date-picker/index.js";
* ```
*
* ```html
*
* ```
*/
export declare class DaikinDatePicker extends DDSFormElement {
static readonly styles: import('lit').CSSResult;
/**
* The placeholder text.
*/
placeholder: string;
/**
* The minimum date.
*
* @default "1900-01-01"
*/
min: string;
/**
* The maximum date.
*
* @default "2099-12-31"
*/
max: string;
/**
* Whether the text field is readonly.
*/
readonly: boolean;
/**
* Whether the text field is disabled.
* Controlled by `daikin-input-group` when used within `daikin-input-group`.
*/
disabled: boolean;
/**
* Whether the text field is required.
* Controlled by `daikin-input-group` when used within `daikin-input-group`.
*/
required: boolean;
/**
* Whether or not to display error states.
* Ignored if the `disabled` is `true`.
* Controlled by `daikin-input-group` when used within `daikin-input-group`.
*/
error: boolean;
/**
* Whether the date picker is open.
*/
open: boolean;
/**
* The month that is initially displayed when the date picker is opened.
* If there is a `value` attribute, this is ignored.
*/
defaultValue: string | null;
/**
* The label text used as the value of aria-label.
* Set automatically by `reflectInputGroup` method.
*/
private _label;
private _currentSelection;
private _autoUpdateController;
private _dateInputElement;
private _calendarElement;
private _calendarButtonElement;
private get _value();
private get _min();
private get _max();
private get _viewDate();
private get _open();
private _ignoreCloseByFocusTrap;
private _handleCloseCalendar;
private readonly _focusTrapController;
private _emitSelect;
private _handleFocusIn;
private _handleFocusOut;
private _handleChange;
private _handleMouseUp;
private _handleKeyDown;
private _handleBeforeInput;
private _handleSelect;
private _handlePointerDown;
private _handlePointerUp;
private _handleCalendarKeyDown;
private _handleToggle;
private _updateValue;
private _updateInputSelection;
private _updateSelection;
label: string | null;
/**
* Focuses on the inner date input.
* @param options focus options
*/
focus(options?: FocusOptions): void;
render(): import('lit-html').TemplateResult<1>;
protected willUpdate(changedProperties: PropertyValues): void;
protected updated(changedProperties: PropertyValues): void;
/**
* This method is used by `daikin-input-group` to reflect it's attributes to this component.
* @private
*/
reflectInputGroup(inputGroup: DaikinInputGroup): void;
}
declare global {
interface HTMLElementTagNameMap {
"daikin-date-picker": DaikinDatePicker;
}
}