import { type GeneratedAnswer, type GeneratedAnswerWithFollowUps, type SearchStatus, type TabManager, type TabManagerState } from '@coveo/headless';
import { LitElement, nothing, type PropertyValueMap } from 'lit';
import '../../common/atomic-generated-answer-thread/atomic-generated-answer-thread.js';
import '../../common/atomic-ask-follow-up-input/atomic-ask-follow-up-input.js';
import type { Bindings } from '../atomic-search-interface/atomic-search-interface';
import type { InitializableComponent } from '../../../decorators/types';
/**
 * The `atomic-generated-answer` component uses Coveo Machine Learning (Coveo ML) models to automatically generate an answer to a query executed by the user.
 * For more information, see [About Relevance Generative Answering (RGA)](https://docs.coveo.com/en/n9de0370/)
 *
 * @slot no-answer-message - Lets you pass a custom sorry message when no answer is generated.
 *
 * @part container - The container displaying the generated answer.
 * @part header -   The header container of the generated answer card.
 * @part header-icon - The icon in the header of the generated answer card.
 * @part header-label - The header label of the generated answer card.
 * @part feedback-button - The "like" and "dislike" buttons.
 * @part feedback-and-copy-buttons - The container for the feedback and copy buttons.
 * @part toggle - The switch to toggle the visibility of the generated answer.
 * @part copy-button - The "Copy answer" button.
 * @part generated-content-container - The container for the generated answer content.
 * @part generated-content - The main content of the generated answer.
 * @part retry-container - The container for the "retry" section.
 * @part generated-text - The text of the generated answer.
 * @part citations-label - The header of the citations list.
 *
 * @part answer-code-block - The generated answer multi-line code blocks.
 * @part answer-emphasis - The generated answer emphasized text elements.
 * @part answer-inline-code - The generated answer inline code elements.
 * @part answer-heading-1 - The generated answer level 1 heading elements.
 * @part answer-heading-2 - The generated answer level 2 heading elements.
 * @part answer-heading-3 - The generated answer level 3 heading elements.
 * @part answer-heading-4 - The generated answer level 4 heading elements.
 * @part answer-heading-5 - The generated answer level 5 heading elements.
 * @part answer-heading-6 - The generated answer level 6 heading elements.
 * @part answer-list-item - The generated answer list item elements for both ordered and unordered lists.
 * @part answer-link - The generated answer inline link elements.
 * @part answer-link-text - The text content of the inline link element.
 * @part answer-link-icon - The icon of the the inline link element.
 * @part answer-ordered-list - The generated answer ordered list elements.
 * @part answer-paragraph - The generated answer paragraph elements.
 * @part answer-quote-block - The generated answer quote block elements.
 * @part answer-unordered-list - The generated answer unordered list elements.
 * @part answer-strong - The generated answer strong text elements.
 * @part answer-table - The generated answer table elements.
 * @part answer-table-container - The generated answer table container elements.
 * @part answer-table-content - The generated answer table content cell elements.
 * @part answer-table-header - The generated answer table header cell elements.
 *
 * @part citation - The link that allows the user to navigate to the item.
 * @part citation-popover - The pop-up that shows an item preview when the user hovers over the citation.
 *
 * @part input-container - The follow-up input container.
 * @part input-field - The follow-up textarea input field.
 * @part submit-button - The follow-up submit button.
 * @part submit-icon - The icon displayed in the follow-up submit button.
 */
export declare class AtomicGeneratedAnswer extends LitElement implements InitializableComponent<Bindings> {
    static styles: import("lit").CSSResult[][];
    private static readonly propsSchema;
    private static readonly fieldsToIncludeInCitationsConverter;
    private readonly DEFAULT_COLLAPSED_HEIGHT;
    private readonly MAX_COLLAPSED_HEIGHT;
    private readonly MIN_COLLAPSED_HEIGHT;
    private readonly REQUIRED_FIELDS_TO_INCLUDE_IN_CITATIONS;
    private resizeObserver?;
    private fullAnswerHeight?;
    private controller;
    /**
     * Whether to render a toggle button that lets the user hide or show the answer.
     */
    withToggle: boolean;
    /**
     * Whether to allow the answer to be collapsed when the text is taller than the specified `--atomic-crga-collapsed-height` value (16rem by default).
     * The `collapsible` property is disabled when follow-up questions are enabled. The threaded conversation layout manages its own content display.
     */
    collapsible: boolean;
    /**
     * The maximum height (in rem units) of the answer when collapsed.
     */
    maxCollapsedHeight: number;
    /**
     * The unique identifier of the answer configuration to use to generate the answer.
     */
    answerConfigurationId?: string;
    /**
     * The unique identifier of the agent to use to generate answers.
     * This is required to use an agent that can provide follow-up answers, but whether follow-ups are shown in the UI also depends on the feature being enabled in the application state.
     * Setting both `agent-id` and `answer-configuration-id` is not supported. If both are provided, `agent-id` takes precedence and `answer-configuration-id` is ignored. Use `agent-id` for the conversational experience, or `answer-configuration-id` for single-turn answer generation via the Answer API. If neither is provided, the component falls back to the Search API for generated answers.
     */
    agentId?: string;
    /**
     * A list of fields to include with the citations used to generate the answer.
     *
     * Set this property as a stringified JSON array, for example:
     * ```html
     *  <atomic-generated-answer fields-to-include-in-citations='["fieldA", "fieldB"]'></atomic-generated-answer>
     * ```
     */
    fieldsToIncludeInCitations?: string;
    /**
     * Whether to disable citation anchoring.
     */
    disableCitationAnchoring: boolean;
    /**
     * The tabs on which the generated answer can be displayed. This property should not be used at the same time as `tabs-excluded`.
     *
     * Set this property as a stringified JSON array, for example:
     * ```html
     *  <atomic-generated-answer tabs-included='["tabIDA", "tabIDB"]'></atomic-generated-answer>
     * ```
     * If you don't set this property, the generated answer can be displayed on any tab. Otherwise, the generated answer can only be displayed on the specified tabs.
     */
    tabsIncluded: string[];
    /**
     * The tabs on which this generated answer must not be displayed. This property should not be used at the same time as `tabs-included`.
     *
     * Set this property as a stringified JSON array, for example:
     * ```html
     *  <atomic-generated-answer tabs-excluded='["tabIDA", "tabIDB"]'></atomic-generated-answer>
     * ```
     * If you don't set this property, the generated answer can be displayed on any tab. Otherwise, the generated answer won't be displayed on any of the specified tabs.
     */
    tabsExcluded: string[];
    bindings: Bindings;
    error: Error;
    private generatedAnswerState;
    generatedAnswer: GeneratedAnswer | GeneratedAnswerWithFollowUps;
    private searchStatusState;
    searchStatus: SearchStatus;
    tabManagerState: TabManagerState;
    tabManager: TabManager;
    private copied;
    private copyError;
    private ariaMessage;
    constructor();
    initialize(): void;
    disconnectedCallback(): void;
    protected willUpdate(changedProperties: PropertyValueMap<this>): void;
    render(): import("lit-html").TemplateResult<1> | typeof nothing;
    onGeneratedAnswerStateUpdate: () => void;
    private get hasNoAnswerGenerated();
    private get isAnswerVisible();
    private get toggleTooltip();
    private get copyToClipboardTooltip();
    private get hasCustomNoAnswerMessage();
    private copyToClipboard;
    private clickOnShowButton;
    private getCitationFields;
    private validateMaxCollapsedHeight;
    private toggleClass;
    private adaptAnswerHeight;
    private getAnswerContainer;
    private getAnswerFooter;
    private setCSSVariable;
    private updateAnswerHeight;
    private clickDislike;
    private clickLike;
    private renderCitationsList;
    private renderFeedbackAndCopyButtonsWrapper;
    private renderAnswerContent;
    private get hasAgentId();
    private get generatedAnswerWithFollowUps();
    private get areFollowUpsEnabled();
    private get isCollapsibleEnabled();
    private resetCollapsibleStyles;
    private renderCardHeaderWrapper;
    private get isAnswerGenerationOngoing();
    private handleAskFollowUp;
    private renderAskFollowUpInputWrapper;
}
declare global {
    interface HTMLElementTagNameMap {
        'atomic-generated-answer': AtomicGeneratedAnswer;
    }
}
