import { FullPosition } from '../base/Position'; export declare enum ArkMetadataKind { LEADING_COMMENTS = 0, TRAILING_COMMENTS = 1, JSDOC = 2, ENUM_INIT_TYPE_USER = 3 } export interface ArkMetadataType { } /** * ArkMetadata * @example * // get leading comments * let stmt: Stmt = xxx; * let comments = stmt.getMetadata(ArkMetadataKind.LEADING_COMMENTS) || []; * comments.forEach((comment) => { * logger.info(comment); * }); */ export declare class ArkMetadata { protected metadata?: Map; getMetadata(kind: ArkMetadataKind): ArkMetadataType | undefined; setMetadata(kind: ArkMetadataKind, value: ArkMetadataType): void; } export type CommentItem = { content: string; position: FullPosition; }; export declare class CommentsMetadata implements ArkMetadataType { private comments; constructor(comments: CommentItem[]); getComments(): CommentItem[]; } export type JSDocParamItem = { name: string; type?: string; description: string; }; export type JSDocTagItem = { name: string; description: string; }; export type JSDocReturnItem = { type?: string; description: string; }; export type JSDocThrowItem = { type?: string; description: string; }; export declare class JSDocMetadata implements ArkMetadataType { private description; private params; private tags; private returns; private throws; constructor(description: string, params: JSDocParamItem[], tags?: JSDocTagItem[], returns?: JSDocReturnItem[], throws?: JSDocThrowItem[]); getDescription(): string; getParams(): JSDocParamItem[]; getTags(): JSDocTagItem[]; getReturns(): JSDocReturnItem[]; getThrows(): JSDocThrowItem[]; } export declare class EnumInitTypeUserMetadata implements ArkMetadataType { private originTypeUser; constructor(originTypeUser: boolean); isUserDefined(): boolean; } //# sourceMappingURL=ArkMetadata.d.ts.map