import { PropertyValues } from 'lit';
import { PktCalendar } from '../calendar/calendar';
import { PktInputElement } from '../../base-elements/input-element';
import { Ref } from 'lit/directives/ref.js';
import { PktDatepickerPopup } from './datepicker-popup';
import { PktDatepickerSingle } from './datepicker-single';
import { PktDatepickerRange } from './datepicker-range';
import { PktDatepickerMultiple } from './datepicker-multiple';
import { ElementProps } from '../../types/typeUtils';
type Props = ElementProps<PktDatepicker, 'label' | 'dateformat' | 'multiple' | 'maxlength' | 'range' | 'showRangeLabels' | 'min' | 'max' | 'weeknumbers' | 'withcontrols' | 'excludedates' | 'excludeweekdays' | 'currentmonth' | 'calendarOpen' | 'timezone'>;
export declare class PktDatepicker extends PktInputElement<Props> {
    /**
     * Element attributes and properties
     */
    private _valueProperty;
    private _valueProcessing;
    datepickerPopupRef: Ref<PktDatepickerPopup>;
    get value(): string;
    set value(newValue: string | string[]);
    _value: string[];
    label: string;
    dateformat: string;
    multiple: boolean;
    maxlength: number | null;
    range: boolean;
    showRangeLabels: boolean;
    min: string | null;
    max: string | null;
    weeknumbers: boolean;
    withcontrols: boolean;
    excludedates: string[];
    excludeweekdays: string[];
    currentmonth: string | null;
    today: string | null;
    calendarOpen: boolean;
    timezone: string;
    inputClasses: {};
    /**
     * Computed properties
     */
    get inputType(): string;
    /**
     * Housekeeping / lifecycle methods
     */
    connectedCallback(): void;
    disconnectedCallback(): void;
    onInput(): void;
    valueChanged(newValue: string | null, oldValue: string | null): void;
    attributeChangedCallback(name: string, _old: string | null, value: string | null): void;
    updated(changedProperties: PropertyValues): void;
    /**
     * Element references
     */
    get inputRef(): Ref<HTMLInputElement>;
    get inputRefTo(): Ref<HTMLInputElement>;
    calRef: Ref<PktCalendar>;
    popupRef: Ref<HTMLDivElement>;
    singleInputRef: Ref<PktDatepickerSingle>;
    rangeInputRef: Ref<PktDatepickerRange>;
    multipleInputRef: Ref<PktDatepickerMultiple>;
    get currentInputElement(): HTMLInputElement | undefined;
    get currentInputElementTo(): HTMLInputElement | undefined;
    get currentButtonElement(): HTMLButtonElement | undefined;
    get btnRef(): Ref<HTMLButtonElement>;
    /**
     * Rendering
     */
    renderInput(): import('lit-html').TemplateResult<1>;
    renderRangeInput(): import('lit-html').TemplateResult<1>;
    renderMultipleInput(): import('lit-html').TemplateResult<1>;
    renderCalendar(): import('lit-html').TemplateResult<1>;
    render(): import('lit-html').TemplateResult<1>;
    /**
     * Handlers
     */
    handleCalendarPosition(): void;
    addToSelected: (e: Event | KeyboardEvent) => void;
    showCalendar(): Promise<void>;
    hideCalendar(): void;
    toggleCalendar(e: Event): Promise<void>;
    clearInputValue(): void;
}
export {};
