import { default as CortexElement } from '../../../../base/src/cortex-element.ts';
import { FormatDateDay, FormatDateEra, FormatDateHour, FormatDateMinute, FormatDateMonth, FormatDateSecond, FormatDateTimeZoneHour, FormatDateTimeZoneName, FormatDateWeekday, FormatDateYear } from '../../../../types/src/format-date';

/**
 * @summary Formats a date/time using the specified locale and options.
 *
 * @description Localization is handled by the browser's [`Intl.DateTimeFormat` API](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat).
 * No language packs are required.
 */
export default class CxFormatDate extends CortexElement {
    private readonly localize;
    /**
     * The date/time to format. If not set, the current date and time will be used. When passing a string, it's strongly
     * recommended to use the ISO 8601 format to ensure timezones are handled correctly. To convert a date to this format
     * in JavaScript, use [`date.toISOString()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString).
     */
    date: Date | string;
    /** The format for displaying the weekday. */
    weekday: FormatDateWeekday;
    /** The format for displaying the era. */
    era: FormatDateEra;
    /** The format for displaying the year. */
    year: FormatDateYear;
    /** The format for displaying the month. */
    month: FormatDateMonth;
    /** The format for displaying the day. */
    day: FormatDateDay;
    /** The format for displaying the hour. */
    hour: FormatDateHour;
    /** The format for displaying the minute. */
    minute: FormatDateMinute;
    /** The format for displaying the second. */
    second: FormatDateSecond;
    /** The format for displaying the time. */
    timeZoneName: FormatDateTimeZoneName;
    /** The time zone to express the time in. */
    timeZone: string;
    /** The format for displaying the hour. */
    hourFormat: FormatDateTimeZoneHour;
    render(): import('lit').TemplateResult<1> | undefined;
}
declare global {
    interface HTMLElementTagNameMap {
        'cx-format-date': CxFormatDate;
    }
}
