import { IJsonLangParams, RuleHandler, RuleResult, Rules, RuleDefinition, JsonLangOptions, SyncJsonLangOptions, AsyncJsonLangOptions } from './core.types'; export declare class RuleCore { private rules; private rulesDefinitions; private sync; constructor(options?: JsonLangOptions); /** * @param {IJsonLangParams} jsonLang * @param {Object} data. * @returns {Promise | RuleResult} * @description use it to run all rules and any extended `Sync/Async` Rules */ execute(rules: IJsonLangParams, data?: {}, options?: AsyncJsonLangOptions): Promise; execute(rules: IJsonLangParams, data?: {}, options?: SyncJsonLangOptions): RuleResult; /** * @param {Class[]} RuleClasses - Array of Classes which contain methods/rules. * @returns {void} * @description to extend JsonLang by importing a class with @JsonLangExtension decorator, and register its methods by @RuleExtension decorator */ import: (...ruleClasses: any[]) => void; /** * @param {Rules} rules - Map of Rules. * @returns {void} * @description to extend JsonLang by a Map() of rules the "Map key" is RuleIdentifier and the "Map value" is the Sync/Async RuleHandler */ registerMany: (rules: Rules) => void; /** * @param {RuleIdentifier} ruleIdentifier * @param {RuleHandler} RuleHandler. * @returns {void} * @description to extend JsonLang by adding one Sync/Async Rule */ registerOne: (definition: Omit, ruleHandler: RuleHandler) => void; /** * @param {string[]} rules - Optional Array of Rules' names or shortcuts to get their definitions. * @returns {RuleDefinition[]} * @description Get rules definitions, if no rules names passed, it will return all rules definitions */ getRulesDefinitions: (rules?: string[]) => RuleDefinition[]; private setRuleWithDefinition; private createRunContext; private createSyncRunContext; private resolveRuleInputs; private resolveSyncRuleInputs; private getInputsWithActions; private getRuleParams; private getHandlerInnerRules; private isRule; } //# sourceMappingURL=core.d.ts.map