/// <reference types="react" />
import { BaseLogicExpression } from "./BaseLogic";
import { ExpressionValue } from "../../ExpressionValue";
import { IBaseExpressionElement } from "../../Utilities/IBaseExpressionElement";
import { ExpressionEditContext } from "../../Utilities/ExpressionEditContext";
import { AndGroup } from "./Grouping";
import { XExecutionData } from "../../../Common/Data/ExecutionData/XExecutionData";
import { IDataDefinition } from "../../../Common/Data/Definitions/IDataDefinition";
import { IConfigStorage } from "../../../Common/IConfigStorage";
import { ITestingContext } from "../../../Common/Testing/ITestingContext";
import { BaseTestResultData } from "../../../Common/Testing/TestResultData";
export declare const IfSection: (props: {
    children?: any;
}) => JSX.Element;
export declare const IfIndentedSection: (props: {
    children?: any;
}) => JSX.Element;
export declare const ActionButtons: (props: {
    children?: any;
}) => JSX.Element;
export declare const FloatRight: (props: {
    children?: any;
}) => JSX.Element;
export declare enum IfThenStyle {
    DATA_RETURN = "data_return",
    BRANCH_DATA_RETURN = "branch_data_return",
    LOGICAL_RETURN = "logical_return"
}
export declare class IfThenPair implements IBaseExpressionElement, IConfigStorage {
    readonly __type: string;
    readonly canSelect: boolean;
    ifExpression: AndGroup;
    thenExpression: ExpressionValue;
    _id: string;
    editContext?: ExpressionEditContext;
    setEditContext(editContext: ExpressionEditContext, owner: IBaseExpressionElement): void;
    getStorageData(): object;
    setStorageData(data: object): void;
    checkPassedInTest(testcontext: BaseTestResultData | undefined): boolean | null;
    getTestValueColor(testcontext: BaseTestResultData | undefined): string | undefined;
    renderTestResult(testcontext: BaseTestResultData | undefined): JSX.Element | null;
}
export declare class IfThenExpression extends BaseLogicExpression {
    readonly __type: string;
    trueOutput: ExpressionValue;
    defaultOutput: ExpressionValue;
    _ifBranches: IfThenPair[];
    showElseAsDefault: boolean;
    showSimpleReturn: boolean;
    private _ifThenStyle;
    thenText: string;
    defaultText: string;
    set expressionValueType(outputType: IDataDefinition);
    get expressionValueType(): IDataDefinition;
    constructor();
    getExpressionValues(): ExpressionValue[];
    getAllVariables(): string[];
    addIfBranch(): IfThenPair;
    deleteIfBranch(index: number): void;
    get ifBranches(): IfThenPair[];
    setEditContext(editContext: ExpressionEditContext, owner: IBaseExpressionElement): void;
    render(): JSX.Element;
    renderThen(): JSX.Element;
    renderBranchActions(index: number, renderRuleChange?: boolean): JSX.Element;
    getTestValueColor(el: ExpressionValue, testcontext: BaseTestResultData | undefined): string | undefined;
    getLogicDataTestColor(testcontext: BaseTestResultData | undefined, val: string): string | undefined;
    renderEnd(): JSX.Element;
    private onUpdate;
    private addIfBranchFromAction;
    private deleteIfBranchFromAction;
    private renderRuleChange;
    private changeStyle;
    get ifThenStyle(): IfThenStyle;
    set ifThenStyle(value: IfThenStyle);
    evaluate(data: XExecutionData, testContext: ITestingContext | undefined): any;
    getStorageData(): object;
    setStorageData(data: object): void;
}
