import { TaxonomyDialog } from './TaxonomyDialog.js';
import type { DomainProperty } from '@api-client/core/modeling/DomainProperty.js';
import { nothing, type TemplateResult } from 'lit';
import { FunctionSchema, type Suggestion } from '../../elements/code-editor/code-editor.js';
import { type CalculatedConfig } from '@api-client/core/modeling/definitions/Calculated.js';
import type { DomainPropertyType } from '@api-client/core/modeling/DataFormat.js';
import { FormulaTestRunResult } from '../lib/formula_parser.js';
import type { ValidationResult } from '@pawel-up/jexl';
import '../../elements/code-editor/code-editor.js';
/**
 * Dialog for configuring a calculated field semantic on a domain property.
 * It is a formula field that computes its value based on other properties.
 */
export declare class CalculatedTaxonomy extends TaxonomyDialog<CalculatedConfig> {
    domainElement: DomainProperty;
    static title: string;
    /**
     * The list of properties available for mentions.
     */
    suggestions: Suggestion[];
    /**
     * The list of properties that can be used in the formula.
     */
    properties: DomainProperty[];
    /**
     * The data type of the property.
     * Depending on the data type, the formula field offers different capabilities.
     */
    dataType: DomainPropertyType;
    /**
     * The latest validation result of the formula.
     */
    validation?: ValidationResult;
    /**
     * The result of the formula test run.
     * This is used to display the result of the formula when testing it.
     */
    renderValue: FormulaTestRunResult | null;
    functions: FunctionSchema[];
    constructor(domainElement: DomainProperty);
    /**
     * Creates a schema for the code-editor functions.
     * This method is responsible for defining the functions that can be used in the formula,
     * given the current data type.
     */
    createFunctionSchema(): FunctionSchema[];
    protected formCallback(event: Event): Promise<void>;
    protected handleFormulaChange(e: Event): void;
    protected handleShowDocumentation(e: CustomEvent<{
        functionSchema: FunctionSchema;
    }>): void;
    validate(input: string): void;
    handleTestClick(): void;
    testFormula(): Promise<void>;
    render(): TemplateResult;
    protected renderEditor(): TemplateResult;
    protected renderIntro(): TemplateResult;
    protected renderFormulaInput(): TemplateResult;
    protected renderPreview(): TemplateResult | typeof nothing;
    protected renderValidationMessage(): TemplateResult | typeof nothing;
    protected renderRecalculateOnUpdate(): TemplateResult;
    protected renderAllowManualOverride(): TemplateResult;
}
//# sourceMappingURL=CalculatedTaxonomy.d.ts.map