import { TranslatorState, TranslatorGenerator } from '@lcap/nasl-translator';
import type ForEachStatement from './ForEachStatement__';
import type Assignment from './Assignment__';
import type BatchAssignment from './BatchAssignment__';
import type MatchCase from './MatchCase__';
import type AnonymousFunction from './AnonymousFunction__';
import type CallFunction from './CallFunction__';
import * as types from './utils/types';
import LogicItem from './LogicItem__';
import type Param from './Param__';
import type Return from './Return__';
import type Variable from './Variable__';
/**
* 子逻辑
*/
export declare class SubLogic extends LogicItem {
/** 类名 */
static readonly ConceptName: string;
/**
* 是否为抽象类
* 抽象类不能产生 concept: string
*/
static isAbstract: boolean;
/** 继承链 */
static readonly inheritanceChain: string[];
/**
* 产品概念
*/
readonly concept: 'SubLogic';
/**
* 逻辑名称
*/
name: string;
/**
* 输入参数列表
*/
params: Array;
/**
* 输出参数列表
*/
returns: Array;
/**
* 变量列表
*/
variables: Array;
/**
* 逻辑项列表
*/
body: Array;
/**
* 逻辑项列表
*/
playground: Array;
/**
* @param source 需要合并的部分参数
*/
constructor(source?: Partial);
static from(source: any, parentNode?: any, parentKey?: string): SubLogic;
/**
* 设置逻辑名称
*/
setName(name: string): void;
getParamUniqueName(name?: string): string;
/**
* 插入输入参数
* @internal
* @param name 输入参数名称,如果不填会自动生成一个唯一名称
*/
_insertParamAt(name: string, index: number): Param;
/**
* 插入输入参数
* @internal
* @param paramOptions 输入参数参数
*/
_insertParamAt(paramOptions: Partial, index: number): Param;
/**
* 插入输入参数
* @internal
* @param param 已有的输入参数实例
*/
_insertParamAt(param: Param, index: number): Param;
/**
* 插入输入参数
* @param name 输入参数名称,如果不填会自动生成一个唯一名称
*/
insertParamAt(name: string, index: number): Param;
/**
* 插入输入参数
* @param paramOptions 输入参数参数
*/
insertParamAt(paramOptions: Partial, index: number): Param;
/**
* 插入输入参数
* @param param 已有的输入参数实例
*/
insertParamAt(param: Param, index: number): Param;
/**
* 添加输入参数
* @internal
* @param name 输入参数名称,如果不填会自动生成一个唯一名称
*/
_addParam(name?: string): Param;
/**
* 添加输入参数
* @internal
* @param paramOptions 输入参数参数
*/
_addParam(paramOptions: Partial): Param;
/**
* 添加输入参数
* @internal
* @param param 已有的输入参数实例
*/
_addParam(param: Param): Param;
/**
* 添加输入参数
* @internal
* @param name 输入参数名称,如果不填会自动生成一个唯一名称
*/
addParam(name?: string): Param;
/**
* 添加输入参数
* @param paramOptions 输入参数参数
*/
addParam(paramOptions: Partial): Param;
/**
* 添加输入参数
* @param param 已有的输入参数实例
*/
addParam(param: Param): Param;
getReturnUniqueName(name?: string): string;
/**
* 插入输出参数
* @internal
* @param name 输出参数名称,如果不填会自动生成一个唯一名称
*/
_insertReturnAt(name: string, index: number): Return;
/**
* 插入输出参数
* @internal
* @param retOptions 输出参数参数
*/
_insertReturnAt(retOptions: Partial, index: number): Return;
/**
* 插入输出参数
* @internal
* @param ret 已有的输出参数实例
*/
_insertReturnAt(ret: Return, index: number): Return;
/**
* 插入输出参数
* @param name 输出参数名称,如果不填会自动生成一个唯一名称
*/
insertReturnAt(name: string, index: number): Return;
/**
* 插入输出参数
* @param retOptions 输出参数参数
*/
insertReturnAt(retOptions: Partial, index: number): Return;
/**
* 插入输出参数
* @param ret 已有的输出参数实例
*/
insertReturnAt(ret: Return, index: number): Return;
/**
* 添加输出参数
* @internal
* @param name 输出参数名称,如果不填会自动生成一个唯一名称
*/
_addReturn(name?: string): Return;
/**
* 添加输出参数
* @internal
* @param retOptions 输出参数参数
*/
_addReturn(retOptions: Partial): Return;
/**
* 添加输出参数
* @internal
* @param ret 已有的输出参数实例
*/
_addReturn(ret: Return): Return;
/**
* 添加输出参数
* @internal
* @param name 输出参数名称,如果不填会自动生成一个唯一名称
*/
addReturn(name?: string): Return;
/**
* 添加输出参数
* @param retOptions 输出参数参数
*/
addReturn(retOptions: Partial): Return;
/**
* 添加输出参数
* @param ret 已有的输出参数实例
*/
addReturn(ret: Return): Return;
getVariableUniqueName(name?: string): string;
/**
* 插入变量
* @internal
* @param name 变量名称,如果不填会自动生成一个唯一名称
*/
_insertVariableAt(name: string, index: number): Variable;
/**
* 插入变量
* @internal
* @param variableOptions 变量参数
*/
_insertVariableAt(variableOptions: Partial, index: number): Variable;
/**
* 插入变量
* @internal
* @param variable 已有的变量实例
*/
_insertVariableAt(variable: Variable, index: number): Variable;
/**
* 插入变量
* @param name 变量名称,如果不填会自动生成一个唯一名称
*/
insertVariableAt(name: string, index: number): Variable;
/**
* 插入变量
* @param variableOptions 变量参数
*/
insertVariableAt(variableOptions: Partial, index: number): Variable;
/**
* 插入变量
* @param variable 已有的变量实例
*/
insertVariableAt(variable: Variable, index: number): Variable;
/**
* 添加变量
* @internal
* @param name 变量名称,如果不填会自动生成一个唯一名称
*/
_addVariable(name?: string): Variable;
/**
* 添加变量
* @internal
* @param variableOptions 变量参数
*/
_addVariable(variableOptions: Partial): Variable;
/**
* 添加变量
* @internal
* @param variable 已有的变量实例
*/
_addVariable(variable: Variable): Variable;
/**
* 添加变量
* @internal
* @param name 变量名称,如果不填会自动生成一个唯一名称
*/
addVariable(name?: string): Variable;
/**
* 添加变量
* @param variableOptions 变量参数
*/
addVariable(variableOptions: Partial): Variable;
/**
* 添加变量
* @param variable 已有的变量实例
*/
addVariable(variable: Variable): Variable;
/**
* 插入逻辑项
* @internal
* @param logicItemOptions 逻辑项参数
*/
_insertItemInBodyAt(logicItemOptions: Partial, index: number): types.LogicItemNode;
/**
* 插入逻辑项
* @internal
* @param logicItem 已有的逻辑项实例
*/
_insertItemInBodyAt(logicItem: types.LogicItemNode, index: number): types.LogicItemNode;
/**
* 插入逻辑项
* @param logicItemOptions 逻辑项参数
*/
insertItemInBodyAt(logicItemOptions: Partial, index: number): types.LogicItemNode;
/**
* 插入逻辑项
* @param logicItem 已有的逻辑项实例
*/
insertItemInBodyAt(logicItem: types.LogicItemNode, index: number): types.LogicItemNode;
/**
* 添加逻辑项
* @internal
* @param logicItemOptions 逻辑项参数
*/
_addItemInBody(logicItemOptions: Partial): types.LogicItemNode;
/**
* 添加逻辑项
* @internal
* @param logicItem 已有的逻辑项实例
*/
_addItemInBody(logicItem: types.LogicItemNode): types.LogicItemNode;
/**
* 添加逻辑项
* @param logicItemOptions 逻辑项参数
*/
addItemInBody(logicItemOptions: Partial): types.LogicItemNode;
/**
* 添加逻辑项
* @param logicItem 已有的逻辑项实例
*/
addItemInBody(logicItem: types.LogicItemNode): types.LogicItemNode;
/**
* 插入逻辑项
* @internal
* @param logicItemOptions 逻辑项参数
*/
_insertItemInPlaygroundAt(logicItemOptions: Partial, index: number): types.LogicItemNode;
/**
* 插入逻辑项
* @internal
* @param logicItem 已有的逻辑项实例
*/
_insertItemInPlaygroundAt(logicItem: types.LogicItemNode, index: number): types.LogicItemNode;
/**
* 插入逻辑项
* @param logicItemOptions 逻辑项参数
*/
insertItemInPlaygroundAt(logicItemOptions: Partial, index: number): types.LogicItemNode;
/**
* 插入逻辑项
* @param logicItem 已有的逻辑项实例
*/
insertItemInPlaygroundAt(logicItem: types.LogicItemNode, index: number): types.LogicItemNode;
/**
* 添加逻辑项
* @internal
* @param logicItemOptions 逻辑项参数
*/
_addItemInPlayground(logicItemOptions: Partial): types.LogicItemNode;
/**
* 添加逻辑项
* @internal
* @param logicItem 已有的逻辑项实例
*/
_addItemInPlayground(logicItem: types.LogicItemNode): types.LogicItemNode;
/**
* 添加逻辑项
* @param logicItemOptions 逻辑项参数
*/
addItemInPlayground(logicItemOptions: Partial): types.LogicItemNode;
/**
* 添加逻辑项
* @param logicItem 已有的逻辑项实例
*/
addItemInPlayground(logicItem: types.LogicItemNode): types.LogicItemNode;
/**
* 删除输入参数
* @param name 输入参数名称
*/
removeParam(name: string): void;
/**
* 删除输入参数
* @param param 已有的输入参数实例
*/
removeParam(param: Param): void;
/**
* 删除输出参数
* @param name 输出参数名称
*/
removeReturn(name: string): void;
/**
* 删除输出参数
* @param ret 已有的输出参数实例
*/
removeReturn(ret: Return): void;
/**
* 删除变量
* @param name 变量名称
*/
removeVariable(name: string): void;
/**
* 删除变量
* @param variable 已有的变量实例
*/
removeVariable(variable: Variable): void;
/**
* 删除逻辑项
* @param logicItem 已有的逻辑项实例
*/
removeItemInBody(logicItem: types.LogicItemNode): void;
/**
* 删除逻辑项
* @param logicItem 已有的逻辑项实例
*/
removeItemInPlayground(logicItem: types.LogicItemNode): void;
completionChildren: Array;
get __isVirtual(): boolean;
getVarExistingNames(excludedList?: Array): string[];
toJSContent(code: string, state?: TranslatorState): string;
toJS(state?: TranslatorState, type?: string): string;
static getDefaultOptions(): Partial<{
body: Array;
params: Array;
returns: Array;
}>;
getRightCode(code: string, assignment: Assignment | BatchAssignment | CallFunction, rightNode: any): Generator;
handleForEachCode(code: string, forEachStatement: ForEachStatement): Generator;
handleCollectionCode(code: string, anonymousFunction: AnonymousFunction, callFunction: CallFunction): Generator;
handleReplaceCode(code: string, variable: string, replaceCode: string): string;
handleMatchCaseCode(code: string, matchCase: MatchCase): Generator;
toEmbeddedTS(state?: import("@lcap/nasl-types/out/translator").TranslatorState, prefix?: string, hideDefaultValue?: boolean): TranslatorGenerator;
toEmbeddedTSInProcess(state?: import("@lcap/nasl-types/out/translator").TranslatorState, prependCode?: string, noName?: boolean, prefix?: boolean): TranslatorGenerator;
subLogics: SubLogic[];
getSubLogics(): SubLogic[];
get __name__(): string;
get gatewayName(): string;
toNaturalTS(state?: import("@lcap/nasl-types/out/translator").TranslatorState): string;
toTextualNASL(state?: import("@lcap/nasl-types/out/translator").TranslatorState): string;
}
export default SubLogic;
//# sourceMappingURL=SubLogic__.d.ts.map