import type { Node, TypeChecker } from 'typescript';
import type { Options } from '../../config';
import { DecoratorResolver } from '../../decorator';
import type { DependencyResolver, ReferenceType } from '../../resolver';
import type { Metadata, MetadataGeneratorContext } from './type';
export declare class MetadataGenerator {
    readonly nodes: Node[];
    readonly typeChecker: TypeChecker;
    readonly decoratorResolver: DecoratorResolver;
    readonly config: Options;
    private readonly program;
    private cache;
    private controllers;
    private referenceTypes;
    private circularDependencyResolvers;
    constructor(context: MetadataGeneratorContext);
    generate(): Promise<Metadata>;
    protected buildNodesFromSourceFiles(): number;
    /**
     * Check if the source file path is in the ignored path list.
     *
     * @param filePath
     * @protected
     */
    protected isIgnoredPath(filePath: string): boolean;
    /**
     * Check if the source file path is in the ignored path list.
     *
     * @param filePath
     * @protected
     */
    protected isAllowedPath(filePath: string): boolean;
    isExportedNode(node: Node): boolean;
    addReferenceType(referenceType: ReferenceType): void;
    getReferenceType(refName: string): ReferenceType;
    registerDependencyResolver(callback: DependencyResolver): void;
    private buildControllers;
}
//# sourceMappingURL=module.d.ts.map