import { Dictionary, isString, JSONValue, UnknownFunction } from 'ts-runtime-typecheck'; import { FunctionTag, PropTag, ReportDefinition, TransformFn } from '..'; import { ComponentConfig, Stream } from '../types/reportconfig.type'; export declare const jmespathTransform: { 'fn:jmespath': typeof isString; }; declare const SUPPORTED_DATE_FN_CALLS: { toDateString: boolean; toISOString: boolean; toJSON: boolean; toLocaleDateString: boolean; toLocaleString: boolean; toLocaleTimeString: boolean; toString: boolean; toTimeString: boolean; toUTCString: boolean; }; declare type SUPPORTED_DATE_FORMATS = keyof typeof SUPPORTED_DATE_FN_CALLS; export declare const isFunctionTransform: (value: unknown) => value is TransformFn; export declare const isNonEmptyConfigArray: (value: unknown) => value is ComponentConfig[]; export declare const isNonEmptyStreamArray: (value: unknown) => value is Stream[]; export declare function symmetricDifference(setA: Set, setB: Set): Set; export declare function debounce(func: UnknownFunction, wait: number, immediate?: boolean): (...args: unknown[]) => void; export declare function uniqBy(arr: T[], predicate: UnknownFunction | string): T[]; /** * TODO: Might want to convert this into a supported Cronkite function * like `fn:asCoordinates` and `fn:asCoordinateTuple` where: * - `fn:asCoordinates` -> {x:number, y: number}[] * - `fn:asCoordinateTuple` -> [number, number][] * * Graphs usually require one or the other form of coordinates as input * */ export declare function transformValue(value: JSONValue | TransformFn, json?: JSONValue): Promise; export declare function applyFunction(func: FunctionTag, val: JSONValue | JSONValue[] | Date | [Date | number | TransformFn, SUPPORTED_DATE_FORMATS], data?: JSONValue): Promise; export declare function ramblerQuery(exprSource: string, data: unknown): JSONValue; export declare function processValue(data?: JSONValue, value?: JSONValue): Promise; export declare function filterProps(attributes: Dictionary): Record; export declare function mapAttributesToProps(attributes: Dictionary, data?: JSONValue): Promise>; export declare function validateCronkiteJSONSchema(configIn: unknown): { isValidSchema: boolean; schemaErrors: string | null; }; export declare function coerceCronkiteConfig(config: ReportDefinition | string, validate?: boolean): ReportDefinition; export {};