import * as React from 'react';
import { FlexProps } from 'rebass';
import type { AdaptableColumnPredicate, AdaptableModule, AdaptablePredicateDef, ColumnScope } from '../../../types';
import type { XOR } from '../../../Utilities/Extensions/TypeExtensions';
import { AdaptableQuery } from '../../../AdaptableState/Common/AdaptableQuery';
export type RuleType = XOR<{
    Predicates: AdaptableColumnPredicate[];
}, AdaptableQuery>;
export type EntityRulesEditorProps<T> = {
    data: T;
    module: AdaptableModule;
    showNoRule?: boolean;
    showPredicate?: boolean;
    showObservable?: boolean;
    showAggregation?: boolean;
    showBoolean?: boolean;
    onChange: (data: T) => void;
    defaultPredicateId: string;
    predicateDefs: AdaptablePredicateDef[];
    getPredicateDefsForColId?: (colId: string) => AdaptablePredicateDef[];
    enablePredicateColumnId?: boolean;
    children?: React.ReactNode;
    descriptions: {
        selectPredicate: React.ReactNode;
        useBooleanQuery: React.ReactNode;
        useObservableQuery: React.ReactNode;
        useAggregationQuery: React.ReactNode;
    };
    flexProps?: FlexProps;
    showQueryBuilder?: boolean;
};
export declare const EntityRulesSummary: <T extends {
    Rule?: RuleType;
    Scope: ColumnScope;
}>(props: {
    data: T;
    renderPredicate: (content: string) => React.ReactNode;
    renderQueryExpression: (content: string) => React.ReactNode;
}) => React.JSX.Element;
export declare const EntityRulesEditor: <T extends {
    Rule: RuleType;
    Scope: ColumnScope;
}>(props: EntityRulesEditorProps<T>) => React.JSX.Element;
