/**
 * Metadata merging utility for positioning metadata files relative to source files
 */
import type { VariantCode, VariantExtraFiles } from "../../CodeHighlighter/types.mjs";
/**
 * Options for merging metadata files
 */
interface MergeMetadataOptions {
  /**
   * Optional prefix indicating where source files will be placed.
   * When provided, metadata files will be positioned relative to this prefix
   * PLUS the existing maxSourceBackNavigation from the variant structure.
   *
   * Examples (assuming maxSourceBackNavigation = 2):
   * - 'src/' -> metadata goes to '../../../' (maxSourceBackNavigation + 1 for src/)
   * - 'src/app/' -> metadata goes to '../../../../' (maxSourceBackNavigation + 2 for src/app/)
   * - undefined -> uses only maxSourceBackNavigation (for client merging)
   */
  metadataPrefix?: string;
}
/**
 * Merge metadata files into a variant with proper positioning
 *
 * @param variant - The variant containing source files and potentially mixed metadata/non-metadata files
 * @param metadataFiles - Additional metadata files to merge in
 * @param options - Options for metadata positioning
 * @returns A variant with all metadata files properly positioned
 */
/**
 * Extract metadata files from a variant, scoping them according to metadataPrefix
 *
 * @param variant - The variant containing mixed source and metadata files
 * @returns An object with the cleaned variant and extracted metadata
 */
export declare function extractCodeMetadata(variant: VariantCode): {
  variant: VariantCode;
  metadata: VariantExtraFiles;
};
export declare function mergeCodeMetadata(variant: VariantCode, metadataFiles?: VariantExtraFiles, options?: MergeMetadataOptions): VariantCode;
export {};