import { DatabaseAdapter, BaseModel } from '../core/types';
export interface TestModel extends BaseModel {
    value: string;
    testField?: any;
}
export interface PerformanceTestOptions {
    testStoreName?: string;
    itemCount?: number;
    iterations?: number;
    fileSize?: number;
    concurrentOperations?: number;
    verbose?: boolean;
    cleanupAfterTest?: boolean;
}
export declare class AdapterPerformanceTester {
    private adapter;
    private options;
    private testStoreName;
    private createdFileIds;
    private createdItemIds;
    constructor(adapter: DatabaseAdapter, options?: PerformanceTestOptions);
    /**
     * 运行所有性能测试
     */
    runAllTests(): Promise<{
        success: boolean;
        results: Record<string, PerformanceResult>;
    }>;
    /**
     * 测试单项写入性能
     */
    testSingleItemWrite(): Promise<PerformanceResult>;
    /**
     * 测试单项读取性能
     */
    testSingleItemRead(): Promise<PerformanceResult>;
    /**
     * 测试单项删除性能
     */
    testSingleItemDelete(): Promise<PerformanceResult>;
    /**
     * 测试批量写入性能
     */
    testBulkWrite(): Promise<PerformanceResult>;
    /**
     * 测试批量读取性能
     */
    testBulkRead(): Promise<PerformanceResult>;
    /**
     * 测试批量删除性能
     */
    testBulkDelete(): Promise<PerformanceResult>;
    /**
     * 测试批量文件写入性能
     */
    testBulkFileWrite(): Promise<PerformanceResult>;
    /**
     * 测试批量文件读取性能
     */
    testBulkFileRead(): Promise<PerformanceResult>;
    /**
     * 测试批量文件删除性能
     */
    testBulkFileDelete(): Promise<PerformanceResult>;
    /**
     * 测试分页性能
     */
    testPagination(): Promise<PerformanceResult>;
    /**
     * 测试压力处理与并发操作
     */
    /**
     * 测试压力处理与并发操作
     */
    testStress(): Promise<PerformanceResult>;
    /**
     * 清理测试数据
     */
    cleanupTestData(): Promise<void>;
    /**
     * 根据原始计时数据计算性能指标
     */
    private calculatePerformanceResult;
}
export interface PerformanceResult {
    averageTimeMs: number;
    minTimeMs: number;
    maxTimeMs: number;
    operationsPerSecond: number;
    throughputMBps?: number;
}
export declare function testAdapterPerformance(adapter: DatabaseAdapter, options?: PerformanceTestOptions): Promise<Record<string, PerformanceResult>>;
