hyperformula-dc
Version:
HyperFormula is a JavaScript engine for efficient processing of spreadsheet-like data and formulas
52 lines (51 loc) • 2.62 kB
TypeScript
/**
* @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;
}