import type { StxOptions } from './types';
/**
 * Process ES `import { A, B } from '<spec>'` statements inside `<script>` tags
 * for component tag registration. Registers each named import as a tag pointing
 * at the matching `.stx` file (resolved by component name within the package or
 * relative directory) and strips the import line from the script body so it
 * doesn't run as JS at template runtime.
 *
 * - `<spec>` may be a bare module specifier (resolved via node_modules walk) or
 *   a relative path to a directory or a single `.stx` file.
 * - Default imports (`import Foo from '...'`) are also supported when `<spec>`
 *   resolves to a single `.stx` file.
 * - Named imports referencing non-`.stx` exports are left untouched in the script.
 */
export declare function processESImports(template: string, context: Record<string, any>, filePath: string, options: StxOptions, dependencies: Set<string>): Promise<string>;
/**
 * Unified component processing entry point.
 *
 * Processes all component-related syntax in the template in the correct order:
 * 1. Register builtin components (once)
 * 2. Process `@import` directives
 * 3. Process `@component` directives
 * 4. Process custom element tags (builtins and file-based)
 *
 * @param template - The template string to process
 * @param context - Template variable context
 * @param filePath - Absolute path of the template being processed
 * @param options - Compiler options
 * @param dependencies - Set to track file dependencies for cache invalidation
 * @returns The processed template with all components rendered
 */
export declare function processComponents(template: string, context: Record<string, any>, filePath: string, options: StxOptions, dependencies: Set<string>): Promise<string>;
