import { InputFieldComponent } from '@3mo/field';
import { type MaterialIcon } from '@3mo/icon';
import { FieldDateTimePrecision } from './FieldDateTimePrecision.js';
import type { Calendar } from './selection/index.js';
/**
 * @attr open - Whether the date picker is open
 * @attr pickerHidden - Hide the date picker
 * @attr shortcutReferenceDate - The date to use as a reference for shortcuts
 * @attr precision - The precision of the date picker. Defaults to 'minute'
 */
export declare abstract class FieldDateTimeBase<T> extends InputFieldComponent<T> {
    open: boolean;
    pickerHidden: boolean;
    shortcutReferenceDate: import("@3mo/date-time/DateTime.js").DateTime;
    precision: FieldDateTimePrecision;
    navigationDate: import("@3mo/date-time/DateTime.js").DateTime;
    protected readonly calendar?: Calendar;
    protected connected(): void;
    protected disconnected(): void;
    private handleLanguageChange;
    protected readonly calendarIconButtonIcon: MaterialIcon;
    protected abstract get selectedDate(): DateTime | undefined;
    protected get formatOptions(): Intl.DateTimeFormatOptions;
    protected valueUpdated(): void;
    protected abstract resetNavigationDate(): void;
    protected handleChange(value?: T, e?: Event): void;
    protected get isActive(): boolean;
    protected get placeholder(): string;
    static get styles(): import("@a11d/lit").CSSResult;
    protected get template(): import("lit-html").HTMLTemplateResult;
    protected get endSlotTemplate(): import("lit-html").HTMLTemplateResult;
    protected get inputTemplate(): import("lit-html").HTMLTemplateResult;
    protected abstract inputValueToValue(value: string): T | undefined;
    protected abstract valueToInputValue(value: T | undefined): string;
    private get clearIconButtonTemplate();
    protected get calendarIconButtonTemplate(): import("lit-html").HTMLTemplateResult;
    protected get popoverTemplate(): import("lit-html").HTMLTemplateResult;
    protected get popoverContentTemplate(): import("lit-html").HTMLTemplateResult;
    protected get dateTemplate(): import("lit-html").HTMLTemplateResult;
    protected get calendarTemplate(): import("lit-html").HTMLTemplateResult;
    protected abstract get calendarValue(): DateTimeRange | undefined;
    private get timeTemplate();
    private get hourListTemplate();
    private get minuteListTemplate();
    private get secondListTemplate();
    protected handleSelectedDateChange(date: DateTime, precision: FieldDateTimePrecision): void;
}
//# sourceMappingURL=FieldDateTimeBase.d.ts.map