import type { Node, Project, SourceFile, SyntaxKind } from './ts-morph.ts'; import { type DeclarationPosition, type DeclarationLocation } from './get-declaration-location.ts'; import { getJsDocMetadata } from './get-js-doc-metadata.ts'; export interface ModuleExport { name: string; path: string; position: number; kind: SyntaxKind; declarationPosition?: DeclarationPosition; metadata?: FileExportStaticMetadata; } export interface FileExportStaticMetadata { name: string; environment: ReturnType; jsDocMetadata: ReturnType; location: DeclarationLocation; } export interface FileExportsWithDependenciesResult { exports: ModuleExport[]; dependencies: string[]; } /** Returns metadata about the exports of a file. */ export declare function getFileExportsWithDependencies(filePath: string, project: Project): FileExportsWithDependenciesResult; export declare function getFileExports(filePath: string, project: Project): ModuleExport[]; export declare function ensureProjectSourceFile(filePath: string, project: Project): SourceFile; /** Returns a specific export declaration of a file at a given position and kind. */ export declare function getFileExportDeclaration(filePath: string, position: number, kind: SyntaxKind, project: Project): Node; /** Returns metadata about a specific export of a file. */ export declare function getFileExportMetadata(name: string, filePath: string, position: number, kind: SyntaxKind, project: Project): Promise; /** Get the rendering environment of a declaration. */ declare function getEnvironment(declaration: Node): "server" | "client" | "isomorphic"; export {};