UNPKG

hyperformula-dc

Version:

HyperFormula is a JavaScript engine for efficient processing of spreadsheet-like data and formulas

52 lines (51 loc) 2.62 kB
/** * @license * Copyright (c) 2021 Handsoncode. All rights reserved. */ import { Config } from '../Config'; import { TranslationSet } from '../i18n'; import { Maybe } from '../Maybe'; import { Interpreter } from './Interpreter'; import { FunctionMetadata, FunctionPluginDefinition, PluginArraySizeFunctionType, PluginFunctionType } from './plugin/FunctionPlugin'; export declare type FunctionTranslationsPackage = Record<string, TranslationSet>; export declare class FunctionRegistry { private config; static plugins: Map<string, FunctionPluginDefinition>; private static readonly _protectedPlugins; static registerFunctionPlugin(plugin: FunctionPluginDefinition, translations?: FunctionTranslationsPackage): void; static registerFunction(functionId: string, plugin: FunctionPluginDefinition, translations?: FunctionTranslationsPackage): void; static unregisterFunction(functionId: string): void; static unregisterFunctionPlugin(plugin: FunctionPluginDefinition): void; static unregisterAll(): void; static getRegisteredFunctionIds(): string[]; static getPlugins(): FunctionPluginDefinition[]; static getFunctionPlugin(functionId: string): Maybe<FunctionPluginDefinition>; private static loadTranslations; private static loadPluginFunctions; private static loadPluginFunction; private static loadFunctionUnprotected; static functionIsProtected(functionId: string): boolean; private static protectedFunctions; private static protectedPlugins; private readonly instancePlugins; private readonly functions; private readonly arraySizeFunctions; private readonly volatileFunctions; private readonly arrayFunctions; private readonly structuralChangeFunctions; private readonly functionsWhichDoesNotNeedArgumentsToBeComputed; private readonly functionsMetadata; constructor(config: Config); initializePlugins(interpreter: Interpreter): void; getFunctionPlugin(functionId: string): Maybe<FunctionPluginDefinition>; getFunction(functionId: string): Maybe<PluginFunctionType>; getArraySizeFunction(functionId: string): Maybe<PluginArraySizeFunctionType>; getMetadata(functionId: string): Maybe<FunctionMetadata>; getPlugins(): FunctionPluginDefinition[]; getRegisteredFunctionIds(): string[]; doesFunctionNeedArgumentToBeComputed: (functionId: string) => boolean; isFunctionVolatile: (functionId: string) => boolean; isArrayFunction: (functionId: string) => boolean; isFunctionDependentOnSheetStructureChange: (functionId: string) => boolean; private categorizeFunction; }