import { naslTypes, type ParseNaturalTSState } from '../../utils'; /** * 解析的目录信息 */ export interface DirectoryInfo { name: string; title?: string; } /** * 目录范围类型,根据装饰器名称决定 */ export type DirectoryScope = 'Logic' | 'Enum' | 'Structure' | 'Entity' | 'View'; /** * 从字符串解析目录信息 * 支持格式: * - name(title) - 包含标题的格式 * - name - 纯名称格式 * * name 必须以小写字母开头,由小写字母、数字或下划线组成 * * @param directoryValue - 目录字符串值 * @param parseState - 解析状态 * @returns 解析后的目录信息 */ export declare function parseDirectoryValue(directoryValue: string, parseState: ParseNaturalTSState): DirectoryInfo; /** * 根据装饰器名称获取目录范围 * @param decoratorName - 装饰器名称(Logic、Enum、Structure、Entity) * @returns 目录范围 */ export declare function getDirectoryScopeFromDecorator(decoratorName: string): DirectoryScope; /** * 查找或创建目录(统一方法) * 根据 directory 信息和范围类型,在对应的父节点中查找或创建目录 * * @param appOrView - NASL 应用实例或 View 实例 * @param directoryInfo - 目录信息 * @param scope - 目录范围(Logic、Enum、Structure、Entity、View) * @returns 找到或创建的目录实例 */ export declare function findOrCreateDirectory(appOrView: naslTypes.App | naslTypes.View, directoryInfo: DirectoryInfo, scope: DirectoryScope): naslTypes.Directory; /** * 将节点添加到指定目录(统一方法) * @param directory - 目标目录 * @param node - 要添加的节点 * @param scope - 目录范围,用于确定正确的 namespace * @param dataSourceName - 数据源名称(仅 Entity 类型需要) */ export declare function addNodeToDirectory(directory: naslTypes.Directory, node: naslTypes.Entity | naslTypes.Logic | naslTypes.Enum | naslTypes.Structure | naslTypes.Variable, scope: DirectoryScope, dataSourceName?: string): void; /** * 处理节点的 directory 信息(统一方法) * 如果节点有 _directoryInfo 临时属性,则在对应的父目录中创建或查找目录,并添加引用 * * @param appOrView - NASL 应用实例或 View 实例 * @param node - 要处理的节点 * @param scope - 目录范围(Logic、Enum、Structure、Entity、View) */ export declare function handleDirectory(appOrView: naslTypes.App | naslTypes.View, node: naslTypes.Entity | naslTypes.Logic | naslTypes.Enum | naslTypes.Structure | naslTypes.Variable, scope: DirectoryScope): void; //# sourceMappingURL=transform2Directory.d.ts.map