export interface ParsedConfig {
    prompt?: string;
    api?: string;
    migration?: string;
    uiMjs?: string;
    [key: string]: any;
}
export interface ParsedDefaultExport {
    [key: string]: any;
}
export interface ParsedProperty {
    modifier?: string;
    name: string;
    type: string;
    union?: string[];
    optional?: boolean;
    comment?: string;
    annotations?: ParsedAnnotation[];
}
export interface ParsedInterface {
    name: string;
    extends?: string;
    comment?: string;
    properties: ParsedProperty[];
    annotations?: ParsedAnnotation[];
}
export interface ParsedClass {
    name: string;
    extends?: string;
    implements?: string[];
    comment?: string;
    properties: ParsedProperty[];
    annotations?: ParsedAnnotation[];
}
export interface ParsedEnumMember {
    name: string;
    value?: string | number;
    comment?: string;
}
export interface ParsedEnum {
    name: string;
    comment?: string;
    members: ParsedEnumMember[];
}
export interface ParsedAnnotation {
    name: string;
    constructorArgs?: any[];
    args?: Record<string, any>;
}
export interface ParsedReference {
    path: string;
}
export interface ParseResult {
    config?: ParsedConfig;
    defaultExport?: ParsedDefaultExport;
    classes: ParsedClass[];
    interfaces: ParsedInterface[];
    enums: ParsedEnum[];
    references: ParsedReference[];
}
export declare class TypeScriptParser {
    private static readonly CONFIG_TYPE_PATTERN;
    private static readonly CONFIG_PROPERTY_PATTERN;
    private static readonly DEFAULT_EXPORT_PATTERN;
    private static readonly CLASS_PATTERN;
    private static readonly INTERFACE_PATTERN;
    private static readonly ENUM_PATTERN;
    private static readonly PROPERTY_PATTERN;
    private static readonly ENUM_MEMBER_PATTERN;
    static readonly ANNOTATION_PATTERN: RegExp;
    static readonly ANNOTATION_COMMENT: RegExp;
    private static readonly REFERENCE_PATTERN;
    private config?;
    private defaultExport?;
    private classes;
    private interfaces;
    private enums;
    private references;
    private getLineComment;
    private getPreviousLine;
    private parseConfigType;
    private parseDefaultExport;
    parseMetadata(body: string, line: string): {
        comment: string;
        annotations: ParsedAnnotation[];
    };
    private parseClassProperties;
    getBlockBody(content: string, startIndex: number): string;
    private parseInterfaces;
    private parseClasses;
    private parseReferences;
    private parseEnumMembers;
    isAnnotation(s?: string): boolean;
    isComment(s?: string): boolean;
    private parseEnums;
    private cleanBody;
    parse(sourceCode: string): ParseResult;
}
export declare function parseAnnotation(annotation: string): ParsedAnnotation;
export declare function splitTypes(input: string): string[];
export type ExtractUnionType<T> = T extends any ? [T] extends [UnionToIntersection<T>] ? never : T : never;
type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never;
export declare function extractTypeComponents(typeStr: string): {
    baseType: string;
    unionTypes: string[];
};
export declare function removeMultilineComments(src: string): string;
export declare function convertJsDocComments(src: string): string;
export {};
//# sourceMappingURL=ts-parser.d.ts.map