import { default as CortexElement } from '../../../../base/src/cortex-element.ts';
import { DisplayStyle, FormatTimeInputUnit, UnitsFormat } from '../../../../types/src/time';
import { CSSResultGroup } from 'lit';

export declare function fromDurationAttribute(value: string | null): number | null;
export declare function toDurationAttribute(value: number | null): string | null;
/**
 * @summary Formats a duration in milliseconds or seconds.
 * @description Does not compute time from dates, only formats a given millisecond duration.

 * @cssproperty --cx-format-time-color - Controls the text color of the formatted output.
 * @cssproperty --cx-format-time-font-size - Controls the font size of the formatted output.
 * @cssproperty --cx-format-time-font-weight - Controls the font weight of the formatted output.
 */
export default class CxFormatTime extends CortexElement {
    static readonly styles: CSSResultGroup;
    static readonly dependencies: {};
    private readonly localize;
    /** Duration value. When null/undefined/empty, placeholder is shown. */
    duration: number | null;
    /** Text shown when duration is null or undefined. */
    placeholder: string;
    /** Which units to include. Default "d-h-m" (days, hours, minutes). */
    unitsFormat: UnitsFormat;
    /** Locale used to format the duration output. Defaults "en" */
    locale: string;
    /** Display style used to format the duration output. Defaults to "long". */
    displayStyle: DisplayStyle;
    /** Input unit: "ms" (default) or "s". Value is converted to ms internally. */
    inputUnit: FormatTimeInputUnit;
    formattedDuration: string;
    updateFormattedDuration(): void;
    private normalizeDurationToMilliseconds;
    render(): import('lit').TemplateResult<1>;
}
declare global {
    interface HTMLElementTagNameMap {
        'cx-format-time': CxFormatTime;
    }
}
