import { default as CortexElement } from '../../../../base/src/cortex-element.ts';
import { CSSResultGroup } from 'lit';
import { default as CxLineClamp } from '../line-clamp/line-clamp';
import { default as CxResizeObserver } from '../resize-observer/resize-observer';
import { default as CxTag } from '../tag/tag';

/**
 * @summary Renders an array of items in a row, hiding overflow with a "+N" indicator and tooltip.
 *
 * @slot (default) - One or more elements; each direct child is one item. Items that overflow are hidden and summarized in the indicator tooltip.
 *
 * @csspart container - The items container.
 * @csspart indicator - The "+N" tag when items are clamped.
 *
 * @cssproperty [--array-clamp-separator=', '] - Separator text rendered between visible items.
 */
export default class CxArrayLineClamp extends CortexElement {
    static readonly styles: CSSResultGroup;
    static readonly dependencies: {
        'cx-line-clamp': typeof CxLineClamp;
        'cx-resize-observer': typeof CxResizeObserver;
        'cx-tag': typeof CxTag;
    };
    private readonly containerEl;
    private readonly slotEl;
    /** Separator string between visible items (e.g. ", " or "; "). */
    separator: string;
    /** Separator used in the tooltip for hidden items (defaults to `separator` if not set). */
    tooltipSeparator: string;
    private clampedMap;
    private get totalClamped();
    private get totalVisible();
    private get hiddenChildrenStr();
    private applyItemClasses;
    private handleSlotChange;
    private handleResize;
    runFirstUpdated(): void;
    handleClampedMapChange(): void;
    render(): import('lit').TemplateResult<1>;
}
declare global {
    interface HTMLElementTagNameMap {
        'cx-array-line-clamp': CxArrayLineClamp;
    }
}
