import { extractClassDeclaration, extractEnumDeclaration, extractExportAssignment, extractExportDeclaration, extractFunctionDeclaration, extractImportDeclaration, extractInterfaceDeclaration, extractModuleDeclaration, extractTypeAliasDeclaration, extractVariableStatement, findReferencedTypes } from './declarations';
import { getSourceFileAsync } from './cache';
import { shouldIncludeNonExportedFunction, shouldIncludeNonExportedInterface } from './helpers';
import type { AsyncParseConfig } from './cache';
import type { Declaration } from '../types';
export type { AsyncParseConfig } from './cache';
/**
 * Clear all extractor caches (source files and declarations)
 */
export declare function clearSourceFileCache(): void;
/**
 * Extract only public API declarations from TypeScript source code
 * Uses fast string-based scanner (no TypeScript parser) for maximum performance.
 * Delegates to extract.ts which owns the shared declaration cache with proper LRU eviction.
 */
export declare function extractDeclarations(sourceCode: string, filePath: string, keepComments?: boolean, isolatedDeclarations?: boolean): Declaration[];
/**
 * Async version of extractDeclarations that yields to the event loop for large files
 * Use this when processing many files in parallel to prevent blocking
 */
export declare function extractDeclarationsAsync(sourceCode: string, filePath: string, keepComments?: boolean, config?: AsyncParseConfig): Promise<Declaration[]>;
/**
 * Batch extract declarations from multiple files asynchronously
 * Useful for processing many files while keeping the event loop responsive
 */
export declare function batchExtractDeclarations(files: Array<{ filePath: string, sourceCode: string, keepComments?: boolean }>, config?: AsyncParseConfig & { concurrency?: number }): Promise<Map<string, Declaration[]>>;
export {
  buildClassBody,
  buildClassDeclaration,
  buildFunctionSignature,
  buildInterfaceDeclaration,
  buildModuleBody,
  buildModuleDeclaration,
  buildTypeDeclaration,
  buildVariableDeclaration,
  getInterfaceBody,
} from './builders';
export {
  batchParseSourceFiles,
  getPendingParseCount,
  getSourceFileAsync,
  getSourceFileCacheSize,
  shouldUseAsyncParsing,
} from './cache';
export {
  extractClassDeclaration,
  extractEnumDeclaration,
  extractExportAssignment,
  extractExportDeclaration,
  extractFunctionDeclaration,
  extractImportDeclaration,
  extractInterfaceDeclaration,
  extractModuleDeclaration,
  extractReferencedTypeDeclarations,
  extractTypeAliasDeclaration,
  extractVariableStatement,
  findReferencedTypes,
} from './declarations';
export {
  extractJSDocComments,
  extractTripleSlashDirectives,
  extractTypesFromModuleText,
  getNodeText,
  getParameterName,
  hasAsyncModifier,
  hasExportModifier,
  isBuiltInType,
  shouldIncludeNonExportedFunction,
  shouldIncludeNonExportedInterface,
} from './helpers';
