import { LitElement, nothing } from 'lit';
import type { InitializableComponent } from '../../../decorators/types';
import type { CommerceBindings } from '../atomic-commerce-interface/atomic-commerce-interface';
import '../atomic-commerce-text/atomic-commerce-text';
declare const AtomicProductChildren_base: import("../../../mixins/mixin-common").Constructor<{
    injectStyles(dynamicStyles?: import("lit").CSSResultGroup): Promise<void>;
}> & typeof LitElement;
/**
 * The `atomic-product-children` component renders a section that allows the user to select a nested product (for example, a color variant of a given product).
 *
 * This component leverages the [product grouping](https://docs.coveo.com/en/l78i2152/) feature.
 *
 * The component displays up to 5 child products before showing a "+N" button for additional variants.
 * This limit ensures consistent UI layout while preventing performance issues with large product variant collections.
 */
export declare class AtomicProductChildren extends AtomicProductChildren_base implements InitializableComponent<CommerceBindings> {
    bindings: CommerceBindings;
    private productController;
    private childProducts;
    private activeChildId;
    error: Error;
    initialize(): void;
    /**
     * The i18n key for the localized label to display for the product children section.
     *
     * Set this to an empty string if you do not want to render the label at all.
     */
    label: string;
    /**
     * The child product field to use to render product children images. Fields in the `additionalFields` property of the child products are supported.
     *
     * This field should be defined on each child product, and its value should be an image URL (or an array of image URLs, in which case the component will use the first one in the array).
     */
    field: string;
    /**
     * The fallback image URL to use when the specified `field` is not defined on a given child product, or when its value is invalid.
     */
    fallback: string;
    private onSelectChild;
    private getImageUrl;
    private handleClick;
    private renderChild;
    private renderLabel;
    /**
     * Gets the total count of items, including the parent item itself.
     *
     * The calculation subtracts the number of child items from the total number of children,
     * then adds 1 to include the parent item in the count. This is necessary because
     * `children.length` only represents the number of children of the parent, while
     * the parent is also included in the `atomic-product-children` component.
     *
     * @returns The total count of items, including the parent.
     */
    get count(): number;
    render(): import("lit-html").TemplateResult<1> | typeof nothing;
}
declare global {
    interface HTMLElementTagNameMap {
        'atomic-product-children': AtomicProductChildren;
    }
}
export {};
