/**
 * A class to parse JSDoc comments and extract attribute metadata.
 */
export class AttributeParser {
    /**
     * Creates a new instance of the ScriptParser class.
     *
     * @param {Map<string, string>} tags - An set of tag definitions and their validators to add to the parser
     * @param {object} env - The TypeScript environment to use
     * @param {Map<string, Function>} typeSerializerMap - A map of custom serializers
     */
    constructor(tags: Map<string, string>, env: object, typeSerializerMap: Map<string, Function>);
    env: any;
    tagTypeAnnotations: Map<string, string>;
    typeSerializerMap: Map<string, Function>;
    program: any;
    typeChecker: any;
    /**
     * Parses a JSdoc comment and extracts any associated metadata if the `@attribute`
     * modifier is used. Returns null if this is not an attribute comment.
     *
     * @param {ts.Node} node - The node to parse
     * @param {ParsingError[]} errors - An array to store any parsing errors
     * @param {boolean} requiresAttributeTag - Whether the comment must have an attribute tag
     * @returns {*} - The extracted metadata or null if no metadata was found
     */
    parseAttributeComment(node: ts.Node, errors?: ParsingError[], requiresAttributeTag?: boolean): any;
    /**
     * Extract the public members and their values from a TypeScript node.
     *
     * @param {ts.Node} node - The node to parse
     * @param {ParsingError[]} errors - An array to store any parsing errors
     * @returns {*} - The extracted members
     */
    getNodeAsAttribute(node: ts.Node, errors?: ParsingError[]): any;
    /**
     * Extracts the members of an enum from a TypeScript node.
     *
     * @param {import('typescript').Node} node - The TypeScript node to analyze
     * @param {ParsingError[]} errors - An array to store any parsing errors
     * @returns {Object<string, *>[]} - An array of enum members
     */
    getEnumMembers(node: import("typescript").Node, errors: ParsingError[]): {
        [x: string]: any;
    }[];
    /**
     * Extract the public members and their values from a TypeScript node.
     *
     * @param {ts.Node} node - The node to parse
     * @returns {any[]} - The extracted members
     */
    getMembers(node: ts.Node): any[];
}
import * as ts from 'typescript';
import { ParsingError } from './parsing-error.js';
