import type { B2CInstance } from '../../instance/index.js';
import type { FetchContentLibraryOptions, FetchContentLibraryResult, ContentExportOptions, ContentExportResult } from './types.js';
/**
 * Fetch and parse a content library from an instance (or local file).
 *
 * Returns the parsed Library and optionally the raw archive data.
 * No filesystem side effects.
 *
 * @param instance - B2C instance to fetch from
 * @param libraryId - Library ID (or site ID if isSiteLibrary is true)
 * @param options - Fetch options
 * @returns Parsed library and optional archive data
 *
 * @example
 * ```typescript
 * // Fetch from instance
 * const { library } = await fetchContentLibrary(instance, 'SharedLibrary');
 *
 * // Filter and traverse
 * library.filter(n => n.id === 'homepage');
 * const xml = await library.toXMLString({ traverseHidden: false });
 *
 * // Use local file instead
 * const { library } = await fetchContentLibrary(instance, 'SharedLibrary', {
 *   libraryFile: './library.xml'
 * });
 * ```
 */
export declare function fetchContentLibrary(instance: B2CInstance, libraryId: string, options?: FetchContentLibraryOptions): Promise<FetchContentLibraryResult>;
/**
 * Export specific pages (with component trees and assets) to a local directory.
 *
 * This is a convenience function that:
 * 1. Fetches/parses the library via {@link fetchContentLibrary}
 * 2. Filters by page ID (exact or regex), optionally by folder
 * 3. Downloads static assets via WebDAV (concurrent, with progress)
 * 4. Writes filtered XML and assets to the output directory
 *
 * @param instance - B2C instance
 * @param pageIds - Page content IDs to export
 * @param libraryId - Library ID (or site ID if isSiteLibrary)
 * @param outputPath - Output directory path
 * @param options - Export options
 * @returns Export result with statistics
 *
 * @example
 * ```typescript
 * const result = await exportContent(
 *   instance,
 *   ['homepage', 'about-us'],
 *   'SharedLibrary',
 *   './export',
 * );
 * console.log(`Exported ${result.pageCount} pages, ${result.componentCount} components`);
 * ```
 */
export declare function exportContent(instance: B2CInstance, pageIds: string[], libraryId: string, outputPath: string, options?: ContentExportOptions): Promise<ContentExportResult>;
