kibana/packages/kbn-tinymath/index.d.ts
Tiago Costa 0bfa5aaf01
chore(NA): moving @kbn/tinymath into bazel (#97022)
* chore(NA): moving @kbn/tinymath into bazel

* chore(NA): fixed jest tests

* chore(NA): simplified tsconfig file

Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
2021-04-14 14:49:19 -04:00

46 lines
1.2 KiB
TypeScript

/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0 and the Server Side Public License, v 1; you may not use this file except
* in compliance with, at your election, the Elastic License 2.0 or the Server
* Side Public License, v 1.
*/
export function parse(expression: string): TinymathAST;
export function evaluate(
expression: string | null,
context: Record<string, any>
): number | number[];
// Named arguments are not top-level parts of the grammar, but can be nested
export type TinymathAST = number | TinymathVariable | TinymathFunction | TinymathNamedArgument;
// Zero-indexed location
export interface TinymathLocation {
min: number;
max: number;
}
export interface TinymathFunction {
type: 'function';
name: string;
text: string;
args: TinymathAST[];
location: TinymathLocation;
}
export interface TinymathVariable {
type: 'variable';
value: string;
text: string;
location: TinymathLocation;
}
export interface TinymathNamedArgument {
type: 'namedArgument';
name: string;
value: string;
text: string;
location: TinymathLocation;
}