import type { Token } from "./tokenizer.js"; import type { Expression, Module, SourceSpan, VariableDeclaration, VariableDeclarator } from "./parser.js"; export type ExportNamedDeclaration = { nodeId?: number; type: "ExportNamedDeclaration"; declaration: VariableDeclaration; span: SourceSpan; }; export type ExportDefaultDeclaration = { nodeId?: number; type: "ExportDefaultDeclaration"; declaration: Expression; span: SourceSpan; }; export type ExtractedNamedExport = { type: "named"; name: string; declaration: VariableDeclarator; statement: ExportNamedDeclaration; span: SourceSpan; }; export type ExtractedDefaultExport = { type: "default"; name: "default"; declaration: Expression; statement: ExportDefaultDeclaration; span: SourceSpan; }; export type ExtractedTopLevelExport = ExtractedDefaultExport | ExtractedNamedExport; export declare class ExportExtractionError extends Error { readonly span?: SourceSpan; constructor(message: string, span?: SourceSpan); } export declare function extractTopLevelExports(module: Module): ExtractedTopLevelExport[]; export declare function createExportNamedDeclaration(exportToken: Token, declaration: VariableDeclaration): ExportNamedDeclaration; export declare function createExportDefaultDeclaration(exportToken: Token, declaration: Expression): ExportDefaultDeclaration;