import { AggregateMathField } from '../../../../../../shared-logic/src/CustomField/types';
import { SimpleMathField } from '../../../../../../shared-logic/src/CustomField/types';
import { QueryEngineConfig } from '../../../../../../shared-logic/src/QueryEngineConfig/types';
import { MathFieldSide, NestedMathFieldSide, WipMathField } from './types';
import { QueryAttributes } from '../../../../../../shared-logic/src/QueryAttributes/types';
declare const useSimpleMathModal: (queryEngineConfig: QueryEngineConfig, initialMathField: SimpleMathField | AggregateMathField | undefined, onNewCustomField: (customMetric: SimpleMathField | AggregateMathField) => void) => {
    handleUpsertMathField: () => void;
    onChange: (partial: Partial<WipMathField>) => void;
    isEditing: boolean;
    disabled: boolean;
    publicName: string;
    leftFieldId?: string | undefined;
    left?: QueryAttributes.Measure | NestedMathFieldSide | undefined;
    operator?: "*" | "-" | "/" | "+" | undefined;
    rightFieldId?: string | undefined;
    right?: QueryAttributes.Measure | NestedMathFieldSide | undefined;
    mathType: import("./types").MathType;
    reset: () => void;
};
export default useSimpleMathModal;
export declare const isCalculationUndefined: (state: WipMathField) => boolean;
export declare const buildAggregate: (args: WipMathField) => any;
export declare function buildSides({ leftFieldId, leftFunction, rightFieldId, rightFunction, leftNested, rightNested, }: AggregateMathField): {
    left: MathFieldSide;
    right: MathFieldSide;
};
export declare const isNestedField: (field: MathFieldSide) => field is NestedMathFieldSide;
export declare const isFlatField: (field: MathFieldSide) => field is QueryAttributes.Measure;
export declare function initNestedCalc(values: MathFieldSide | undefined, side: 'left' | 'right'): Partial<WipMathField>;
