#!/usr/bin/env node
/**
 * B41 — Publication Surface Validator
 *
 * v17 publishes compiled JavaScript + generated declarations to npm and
 * TypeScript source to JSR. The old declaration manifest/index.js/index.d.ts
 * check is still kept below as parser helpers for historical tests, but the
 * executable gate now verifies that package and JSR publication surfaces point
 * at existing files rather than stale generated artifacts.
 *
 * Exits non-zero on any broken publication target.
 */
/**
 * Parse the body of an `export { ... }` block and return the exported names.
 * Handles single-line comments, `type` keyword prefix, and `as` aliases.
 * @param {string} blockBody - The content inside the braces (e.g., 'Foo, Bar as Baz')
 * @returns {Set<string>}
 */
export declare function parseExportBlock(blockBody: string): Set<string>;
/**
 * Extract names from `export { A, B, C };` blocks and `export default`.
 * @param {string} src
 * @returns {Set<string>}
 */
export declare function extractJsExports(src: string): Set<string>;
/**
 * @param {string} src
 * @returns {Set<string>}
 */
export declare function extractDtsExports(src: string): Set<string>;
/**
 * Splits manifest exports into runtime-backed and type-only names using the
 * explicit `exports` and `typeExports` sections.
 *
 * `exports` should contain only runtime-backed declarations.
 * `typeExports` should contain only `interface` and `type` declarations.
 *
 * @param {{ exports?: Record<string, { kind?: string }>, typeExports?: Record<string, { kind?: string }> }} manifest
 * @returns {{ manifestNames: Set<string>, runtimeNames: Set<string>, typeOnlyNames: Set<string>, duplicateNames: Set<string>, invalidRuntimeTypeOnly: Set<string>, invalidTypeSectionRuntime: Set<string> }}
 */
export declare function classifyManifestExports(manifest: {
    exports?: Record<string, {
        kind?: string;
    }>;
    typeExports?: Record<string, {
        kind?: string;
    }>;
}): {
    manifestNames: Set<string>;
    runtimeNames: Set<string>;
    typeOnlyNames: Set<string>;
    duplicateNames: Set<string>;
    invalidRuntimeTypeOnly: Set<string>;
    invalidTypeSectionRuntime: Set<string>;
};
