import { ExpressionContext } from '../../parser/src/types';
import { AdaptableApi } from '../../Api/AdaptableApi';
import { Observable } from 'rxjs';
import { CellDataChangedInfo } from '../../AdaptableState/Common/CellDataChangedInfo';
import { RowDataChangedInfo } from '../../types';
export interface BaseParameter<T = string, N = string> {
    type: T;
    name: N;
}
export interface ColumnParameter extends BaseParameter<'config', 'COL'> {
    value: string;
}
export declare const getStringValues: (context: ExpressionContext, ...stringArguments: string[]) => string[];
export declare const getStringValue: (context: ExpressionContext, stringArgument: string) => string;
export declare const isTextSearchCaseInsensitive: (context: ExpressionContext) => boolean;
export declare const getDataChangeLog$: (context: ExpressionContext, columnNameFilter: string) => Observable<CellDataChangedInfo>;
export declare const getGridChangeLog$: (context: ExpressionContext, rowChangeType: RowDataChangedInfo['rowTrigger']) => Observable<RowDataChangedInfo>;
export declare const handleWhereFunction: (args: ExpressionNode[], context: ExpressionContext) => any;
export type ExpressionNode = any;
export declare const evaluateExpressionNode: (expressionNode: ExpressionNode, context: ExpressionContext, filterFn?: (item: any) => boolean) => any;
export declare const extractColumnParameter: (consumingFunctionName: string, args: BaseParameter[]) => ColumnParameter;
export declare const extractColumnParameters: (consumingFunctionName: string, args: BaseParameter[]) => ColumnParameter[];
export declare const extractParameter: <T extends BaseParameter<string, string>>(consumingFunctionName: string, allowedType: T['type'], allowedOperands: T['name'][], args: BaseParameter[], config?: {
    isOptional?: boolean;
}) => T | undefined;
export declare const extractParameters: <T extends BaseParameter<string, string>>(consumingFunctionName: string, allowedType: T['type'], allowedOperands: T['name'][], args: BaseParameter[], config?: {
    isOptional?: boolean;
}) => T[] | undefined;
export declare const handleColumnFunction: (args: any[], context: ExpressionContext) => ColumnParameter;
export declare const getNumericValue: (input: unknown, returnRawValue?: boolean) => number;
export declare const validateColumnType: (columnId: string, validColumnTypes: ('number' | 'text' | 'date')[], consumingFunction: string, api: AdaptableApi) => import("../../types").AdaptableColumnDataType;
