import { FileNode } from '../types';
/**
 * 文件数据源枚举
 */
export declare enum DataSourceType {
    URL = "url",
    CONTENT = "content",
    FILE = "file"
}
/**
 * 预览能力枚举
 */
export declare enum PreviewCapability {
    FULL = "full",// 完全支持预览
    BASIC = "basic",// 基础预览（如图片）
    NONE = "none"
}
/**
 * 数据源处理结果
 */
export interface DataSourceResult {
    /** 数据源类型 */
    sourceType: DataSourceType;
    /** 预览能力 */
    previewCapability: PreviewCapability;
    /** 预览用的资源URL */
    previewUrl?: string;
    /** 内容数据 */
    content?: string;
    /** MIME类型 */
    mimeType?: string;
    /** 是否需要清理资源 */
    needsCleanup: boolean;
}
/**
 * 数据源策略抽象接口
 */
export interface DataSourceStrategy {
    /** 检查是否可以处理该文件 */
    canHandle(file: FileNode): boolean;
    /** 处理文件数据并返回结果 */
    process(file: FileNode): DataSourceResult;
}
/**
 * URL数据源策略
 */
export declare class UrlDataSourceStrategy implements DataSourceStrategy {
    canHandle(file: FileNode): boolean;
    process(file: FileNode): DataSourceResult;
    private getFileCategory;
    private getPreviewCapability;
    private inferMimeType;
}
/**
 * 内容数据源策略
 */
export declare class ContentDataSourceStrategy implements DataSourceStrategy {
    canHandle(file: FileNode): boolean;
    process(file: FileNode): DataSourceResult;
}
/**
 * File对象数据源策略
 */
export declare class FileDataSourceStrategy implements DataSourceStrategy {
    canHandle(file: FileNode): boolean;
    process(file: FileNode): DataSourceResult;
    private getCategoryFromMimeType;
    private isCodeMimeType;
    private getPreviewCapability;
}
/**
 * 数据源管理器
 */
export declare class DataSourceManager {
    private strategies;
    /**
     * 处理文件数据源
     */
    processFile(file: FileNode): DataSourceResult;
    /**
     * 清理资源
     */
    cleanupResult(result: DataSourceResult): void;
    /**
     * 注册新的数据源策略
     */
    registerStrategy(strategy: DataSourceStrategy): void;
}
/**
 * 全局数据源管理器实例
 */
export declare const dataSourceManager: DataSourceManager;
