/**
 * Basic File System Asset Loading
 * Phase 1, Checkpoint A3 - Foundation for hybrid seeding
 */
export interface AssetMetadata {
    title?: string;
    description?: string;
    tags?: string[];
    category?: string;
    author?: string;
    date?: string;
    featured?: boolean;
    [key: string]: any;
}
export interface LoadedAsset {
    id: string;
    filePath: string;
    type: 'markdown' | 'json' | 'image' | 'csv';
    content?: string;
    metadata: AssetMetadata;
    fileSize: number;
    lastModified: Date;
    isValid: boolean;
    validationErrors?: string[];
}
export interface AssetLoadOptions {
    patterns: string[];
    baseDirectory?: string;
    includeContent?: boolean;
    validateSchema?: boolean;
    maxFileSize?: number;
    allowedExtensions?: string[];
}
export interface AssetLoadResult {
    assets: LoadedAsset[];
    errors: Array<{
        filePath: string;
        error: string;
    }>;
    totalFiles: number;
    successCount: number;
    errorCount: number;
}
export declare class AssetLoader {
    private defaultOptions;
    /**
     * Load assets from file system using glob patterns
     */
    loadAssets(options: AssetLoadOptions): Promise<AssetLoadResult>;
    /**
     * Load a single asset file
     */
    private loadSingleAsset;
    /**
     * Parse markdown file with frontmatter
     */
    private parseMarkdownWithFrontmatter;
    /**
     * Extract metadata from JSON data
     */
    private extractJsonMetadata;
    /**
     * Extract metadata from image files
     */
    private extractImageMetadata;
    /**
     * Validate markdown asset
     */
    private validateMarkdownAsset;
    /**
     * Validate JSON asset
     */
    private validateJsonAsset;
    /**
     * Validate image asset
     */
    private validateImageAsset;
    /**
     * Generate unique asset ID from file path
     */
    private generateAssetId;
    /**
     * Get MIME type from file extension
     */
    private getMimeType;
    /**
     * Parse CSV data into structured format
     */
    private parseCsvData;
    /**
     * Parse a single CSV line
     */
    private parseCsvLine;
    /**
     * Extract metadata from CSV data
     */
    private extractCsvMetadata;
    /**
     * Validate CSV asset
     */
    private validateCsvAsset;
    /**
     * Get asset loading statistics
     */
    static getLoadingStats(result: AssetLoadResult): {
        successRate: number;
        avgFileSize: number;
        typeDistribution: Record<string, number>;
        validationRate: number;
    };
}
//# sourceMappingURL=asset-loader.d.ts.map