import { TranslatorState, TranslatorGenerator } from '@lcap/nasl-translator'; import { ElementToVueOptions } from './ViewElement__'; import * as types from './utils/types'; import LogicItem from './LogicItem__'; import type TypeAnnotation from './TypeAnnotation__'; /** * 匹配分支 */ export declare class MatchCase extends LogicItem { /** 类名 */ static readonly ConceptName: string; /** * 是否为抽象类 * 抽象类不能产生 concept: string */ static isAbstract: boolean; /** 继承链 */ static readonly inheritanceChain: string[]; /** * 产品概念 */ readonly concept: 'MatchCase'; /** * 条件表达式 */ patterns: Array; /** * then */ body: Array; /** * 是否可枚举 */ isMatchedTypeEnumable: boolean; /** * @param source 需要合并的部分参数 */ constructor(source?: Partial); static from(source: any, parentNode?: any, parentKey?: string): MatchCase; /** * 设置条件表达式 */ setPatterns(patterns: Array): void; /** * 设置是否可枚举 */ setIsMatchedTypeEnumable(isMatchedTypeEnumable: boolean): void; getLogicItemExistingNames(excludedList?: Array): any[]; getLogicItemUniqueName(name?: string): string; /** * 插入逻辑项 * @internal * @param name 逻辑项名称,如果不填会自动生成一个唯一名称 */ _insertLogicItemInPatternsAt(name: string, index: number): types.LogicItemNode; /** * 插入逻辑项 * @internal * @param logicItemOptions 逻辑项参数 */ _insertLogicItemInPatternsAt(logicItemOptions: Partial, index: number): types.LogicItemNode; /** * 插入逻辑项 * @internal * @param logicItem 已有的逻辑项实例 */ _insertLogicItemInPatternsAt(logicItem: types.LogicItemNode, index: number): types.LogicItemNode; /** * 插入逻辑项 * @param name 逻辑项名称,如果不填会自动生成一个唯一名称 */ insertLogicItemInPatternsAt(name: string, index: number): types.LogicItemNode; /** * 插入逻辑项 * @param logicItemOptions 逻辑项参数 */ insertLogicItemInPatternsAt(logicItemOptions: Partial, index: number): types.LogicItemNode; /** * 插入逻辑项 * @param logicItem 已有的逻辑项实例 */ insertLogicItemInPatternsAt(logicItem: types.LogicItemNode, index: number): types.LogicItemNode; /** * 添加逻辑项 * @internal * @param name 逻辑项名称,如果不填会自动生成一个唯一名称 */ _addLogicItemInPatterns(name?: string): types.LogicItemNode; /** * 添加逻辑项 * @internal * @param logicItemOptions 逻辑项参数 */ _addLogicItemInPatterns(logicItemOptions: Partial): types.LogicItemNode; /** * 添加逻辑项 * @internal * @param logicItem 已有的逻辑项实例 */ _addLogicItemInPatterns(logicItem: types.LogicItemNode): types.LogicItemNode; /** * 添加逻辑项 * @internal * @param name 逻辑项名称,如果不填会自动生成一个唯一名称 */ addLogicItemInPatterns(name?: string): types.LogicItemNode; /** * 添加逻辑项 * @param logicItemOptions 逻辑项参数 */ addLogicItemInPatterns(logicItemOptions: Partial): types.LogicItemNode; /** * 添加逻辑项 * @param logicItem 已有的逻辑项实例 */ addLogicItemInPatterns(logicItem: types.LogicItemNode): types.LogicItemNode; /** * 插入逻辑项 * @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; getTypeAnnotationExistingNames(excludedList?: Array): string[]; getTypeAnnotationUniqueName(name?: string): string; /** * 插入类型标注 * @internal * @param name 类型标注名称,如果不填会自动生成一个唯一名称 */ _insertTypeAnnotationInPatternsAt(name: string, index: number): TypeAnnotation; /** * 插入类型标注 * @internal * @param typeAnnotationOptions 类型标注参数 */ _insertTypeAnnotationInPatternsAt(typeAnnotationOptions: Partial, index: number): TypeAnnotation; /** * 插入类型标注 * @internal * @param typeAnnotation 已有的类型标注实例 */ _insertTypeAnnotationInPatternsAt(typeAnnotation: TypeAnnotation, index: number): TypeAnnotation; /** * 插入类型标注 * @param name 类型标注名称,如果不填会自动生成一个唯一名称 */ insertTypeAnnotationInPatternsAt(name: string, index: number): TypeAnnotation; /** * 插入类型标注 * @param typeAnnotationOptions 类型标注参数 */ insertTypeAnnotationInPatternsAt(typeAnnotationOptions: Partial, index: number): TypeAnnotation; /** * 插入类型标注 * @param typeAnnotation 已有的类型标注实例 */ insertTypeAnnotationInPatternsAt(typeAnnotation: TypeAnnotation, index: number): TypeAnnotation; /** * 添加类型标注 * @internal * @param name 类型标注名称,如果不填会自动生成一个唯一名称 */ _addTypeAnnotationInPatterns(name?: string): TypeAnnotation; /** * 添加类型标注 * @internal * @param typeAnnotationOptions 类型标注参数 */ _addTypeAnnotationInPatterns(typeAnnotationOptions: Partial): TypeAnnotation; /** * 添加类型标注 * @internal * @param typeAnnotation 已有的类型标注实例 */ _addTypeAnnotationInPatterns(typeAnnotation: TypeAnnotation): TypeAnnotation; /** * 添加类型标注 * @internal * @param name 类型标注名称,如果不填会自动生成一个唯一名称 */ addTypeAnnotationInPatterns(name?: string): TypeAnnotation; /** * 添加类型标注 * @param typeAnnotationOptions 类型标注参数 */ addTypeAnnotationInPatterns(typeAnnotationOptions: Partial): TypeAnnotation; /** * 添加类型标注 * @param typeAnnotation 已有的类型标注实例 */ addTypeAnnotationInPatterns(typeAnnotation: TypeAnnotation): TypeAnnotation; /** * 删除逻辑项 * @param name 逻辑项名称 */ removeLogicItemInPatterns(name: string): void; /** * 删除逻辑项 * @param logicItem 已有的逻辑项实例 */ removeLogicItemInPatterns(logicItem: types.LogicItemNode): void; /** * 删除逻辑项 * @param logicItem 已有的逻辑项实例 */ removeItemInBody(logicItem: types.LogicItemNode): void; /** * 删除类型标注 * @param name 类型标注名称 */ removeTypeAnnotationInPatterns(name: string): void; /** * 删除类型标注 * @param typeAnnotation 已有的类型标注实例 */ removeTypeAnnotationInPatterns(typeAnnotation: TypeAnnotation): void; name?: string; get isDisabled(): boolean; get isSlotTypeError(): boolean; isTypeMatching(): Promise; toVue(options?: ElementToVueOptions): string; toUI(state?: TranslatorState, hideDetails?: boolean, hideBody?: boolean): string; toJS(state?: TranslatorState, matchedExpressionName?: string, index?: number, length?: number): string; toEmbeddedTS(state?: import("@lcap/nasl-types/out/translator").TranslatorState, index?: number, exprToBeNarrowed?: string): TranslatorGenerator; toNaturalTS(state?: import("@lcap/nasl-types/out/translator").TranslatorState, index?: number, parentCode?: string): string; toTextualNASL(state?: import("@lcap/nasl-types/out/translator").TranslatorState): string; } export default MatchCase; //# sourceMappingURL=MatchCase__.d.ts.map