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