import type { ResultTemplate as InsightResultTemplate, ResultTemplateCondition as InsightResultTemplateCondition } from '@coveo/headless/insight';
import { LitElement } from 'lit';
import type { LitElementWithError } from '../../../decorators/types';
/**
 * The `atomic-insight-result-children-template` component determines the display format of child results within an `atomic-insight-result-children` component.
 *
 * @slot default - The `<template>` element defining the layout of child results.
 */
export declare class AtomicInsightResultChildrenTemplate extends LitElement implements LitElementWithError {
    error: Error;
    /**
     * An array of functions that must each return `true` for this template to apply to a child result.
     * Set programmatically before initialization, not via attribute.
     *
     * For example, the following targets a template and sets a condition to make it apply only to child results whose `title` contains `singapore`:
     * `document.querySelector('#target-template').conditions = [(result) => /singapore/i.test(result.title)];`
     */
    conditions: InsightResultTemplateCondition[];
    /**
     * The field that, when defined on a child result, allows this template to be applied.
     *
     * For example, a template with the following attribute only applies to child results whose `filetype` and `sourcetype` fields are defined:
     * `if-defined="filetype,sourcetype"`
     */
    ifDefined?: string;
    /**
     * The field that, when defined on a child result, prevents this template from being applied.
     *
     * For example, a template with the following attribute only applies to child results whose `filetype` and `sourcetype` fields are NOT defined:
     * `if-not-defined="filetype,sourcetype"`
     */
    ifNotDefined?: string;
    /**
     * The field and values that define which child results this template applies to.
     *
     * For example, a template with the following attribute only applies to child results whose `filetype` is `lithiummessage` or `YouTubePlaylist`: `must-match-filetype="lithiummessage,YouTubePlaylist"`
     * @type {Record<string, string[]>}
     * @default {}
     */
    mustMatch: Record<string, string[]>;
    /**
     * The field and values that exclude child results from this template.
     *
     * For example, a template with the following attribute only applies to child results whose `filetype` is not `lithiummessage`: `must-not-match-filetype="lithiummessage"`
     * @type {Record<string, string[]>}
     * @default {}
     */
    mustNotMatch: Record<string, string[]>;
    private resultTemplateController;
    constructor();
    connectedCallback(): void;
    render(): symbol;
    /**
     * Returns the result template to apply to a child result, based on all defined conditions.
     */
    getTemplate(): Promise<InsightResultTemplate<DocumentFragment> | null>;
}
declare global {
    interface HTMLElementTagNameMap {
        'atomic-insight-result-children-template': AtomicInsightResultChildrenTemplate;
    }
}
