import { LitElement, nothing } from 'lit';
import type { InitializableComponent } from '../../../decorators/types';
import { type TruncateAfter } from '../../common/expandable-text/expandable-text';
import type { CommerceBindings } from '../atomic-commerce-interface/atomic-commerce-interface';
import '../atomic-product-text/atomic-product-text.js';
declare const AtomicProductExcerpt_base: import("../../../mixins/mixin-common").Constructor<{
    injectStyles(dynamicStyles?: import("lit").CSSResultGroup): Promise<void>;
}> & typeof LitElement;
/**
 * The `atomic-product-excerpt` component renders the excerpt of a product.
 */
export declare class AtomicProductExcerpt extends AtomicProductExcerpt_base implements InitializableComponent<CommerceBindings> {
    bindings: CommerceBindings;
    error: Error;
    private productController;
    private isExpanded;
    private isTruncated;
    private resizeObserver;
    private excerptRef;
    /**
     * The number of lines after which the product excerpt should be truncated. A value of "none" will disable truncation.
     */
    truncateAfter: TruncateAfter;
    /**
     * Whether the excerpt should be collapsible after being expanded.
     */
    isCollapsible: boolean;
    initialize(): void;
    constructor();
    private validateProps;
    updated(changedProperties: Map<string, unknown>): void;
    private onToggleExpand;
    disconnectedCallback(): void;
    private get product();
    render(): import("lit-html").TemplateResult<1> | typeof nothing;
}
declare global {
    interface HTMLElementTagNameMap {
        'atomic-product-excerpt': AtomicProductExcerpt;
    }
}
export {};
