/**
 * Metadata Export System for Legal Markdown Documents
 *
 * This module provides functionality for exporting document metadata to external
 * files in various formats. It supports YAML and JSON export formats with
 * configurable output paths and metadata filtering.
 *
 * Features:
 * - Metadata export to YAML and JSON formats
 * - Configurable output paths and filenames
 * - Metadata filtering and processing
 * - Internal metadata key removal
 * - Directory creation for output files
 * - Error handling and logging
 * - Support for custom export configurations
 *
 * @example
 * ```typescript
 * import { exportMetadata } from './metadata-exporter.js';
 *
 * // Export metadata to YAML
 * const result = exportMetadata(metadata, 'yaml', './output');
 * console.log('Exported files:', result.exportedFiles);
 *
 * // Export with custom configuration
 * const metadata = {
 *   title: 'Legal Agreement',
 *   'meta-yaml-output': 'custom-metadata.yaml',
 *   'meta-json-output': 'custom-metadata.json'
 * };
 * const result = exportMetadata(metadata);
 * ```
 *
 * @module
 */
import type { YamlValue } from '../../types/index.js';
import { MetadataExportResult } from '../../types/index.js';
/**
 * Exports document metadata to external files
 *
 * Processes document metadata and exports it to specified formats (YAML/JSON)
 * with support for custom output paths and metadata filtering. Handles directory
 * creation and provides comprehensive error handling.
 *
 * @function exportMetadata
 * @param {Record<string, any>} metadata - Document metadata to export
 * @param {'yaml' | 'json'} [format] - Export format (yaml or json)
 * @param {string} [outputPath] - Optional path for export files
 * @returns {MetadataExportResult} Result object with list of exported files
 * @example
 * ```typescript
 * import { exportMetadata } from './metadata-exporter.js';
 *
 * // Basic metadata export
 * const metadata = {
 *   title: 'Service Agreement',
 *   author: 'Legal Team',
 *   version: '1.0',
 *   date: '2023-01-01'
 * };
 *
 * const result = exportMetadata(metadata, 'yaml', './output');
 * console.log('Exported to:', result.exportedFiles);
 *
 * // Export with custom filenames
 * const customMetadata = {
 *   title: 'Contract',
 *   'meta-yaml-output': 'contract-metadata.yaml',
 *   'meta-json-output': 'contract-metadata.json',
 *   'meta-output-path': './custom-output'
 * };
 *
 * const customResult = exportMetadata(customMetadata);
 * ```
 */
export declare function exportMetadata(metadata: Record<string, YamlValue>, format?: 'yaml' | 'json', outputPath?: string): MetadataExportResult;
/**
 * Filters metadata based on export configuration
 *
 * Processes metadata to remove internal configuration keys and applies filtering
 * rules based on export settings. This ensures that only relevant metadata is
 * included in the exported files.
 *
 * @function filterMetadataForExport
 * @param {Record<string, any>} metadata - Complete metadata object to filter
 * @returns {Record<string, any>} Filtered metadata object suitable for export
 * @example
 * ```typescript
 * import { filterMetadataForExport } from './metadata-exporter.js';
 *
 * const metadata = {
 *   title: 'Legal Agreement',
 *   author: 'Legal Team',
 *   'meta-yaml-output': 'output.yaml',
 *   'meta-json-output': 'output.json',
 *   'meta-output-path': './exports',
 *   'meta-include-original': false
 * };
 *
 * const filtered = filterMetadataForExport(metadata);
 * // Result: { title: 'Legal Agreement', author: 'Legal Team' }
 * // Internal meta-* keys are removed
 * ```
 */
export declare function filterMetadataForExport(metadata: Record<string, YamlValue>): Record<string, YamlValue>;
//# sourceMappingURL=metadata-exporter.d.ts.map