import { DocumentSchema, ValidationResult } from "./schema.js";
import { BackupConfig, BackupMetadata } from "./backup.js";
import { RecoveryConfig, RecoveryResult, FileRecoveryInfo } from "./recovery.js";
interface TeroConfig {
    directory?: string;
    cacheSize?: number;
}
export declare class Tero {
    private teroDirectory;
    private cacheSize;
    private cache;
    private cacheHits;
    private cacheRequests;
    private acidEngine;
    private schemaValidator;
    private backupManager?;
    private dataRecovery?;
    constructor(config?: TeroConfig);
    private initializeDirectories;
    private validateKey;
    private evictOldestCacheEntry;
    private invalidateCacheKeys;
    private updateCache;
    beginTransaction(): string;
    write(transactionId: string, key: string, data: any, options?: {
        validate?: boolean;
        schemaName?: string;
        strict?: boolean;
    }): Promise<ValidationResult | void>;
    read(transactionId: string, key: string): Promise<any>;
    delete(transactionId: string, key: string): Promise<void>;
    commit(transactionId: string): Promise<void>;
    rollback(transactionId: string): Promise<void>;
    create(key: string, initialData?: any, options?: {
        validate?: boolean;
        schemaName?: string;
        strict?: boolean;
    }): Promise<ValidationResult | boolean>;
    update(key: string, data: any, options?: {
        validate?: boolean;
        schemaName?: string;
        strict?: boolean;
    }): Promise<ValidationResult | void>;
    get(key: string): Promise<any>;
    remove(key: string): Promise<void>;
    exists(key: string): boolean;
    batchWrite(operations: Array<{
        key: string;
        data: any;
    }>, options?: {
        validate?: boolean;
        schemaName?: string;
        strict?: boolean;
    }): Promise<void>;
    batchRead(keys: string[]): Promise<{
        [key: string]: any;
    }>;
    transferMoney(fromKey: string, toKey: string, amount: number): Promise<void>;
    setSchema(collectionName: string, schema: DocumentSchema): void;
    getSchema(collectionName: string): DocumentSchema | undefined;
    removeSchema(collectionName: string): boolean;
    validateData(collectionName: string, data: any): ValidationResult;
    configureBackup(config: BackupConfig): void;
    performBackup(): Promise<{
        success: boolean;
        metadata: BackupMetadata;
        cloudUploaded?: boolean;
    }>;
    configureDataRecovery(config: RecoveryConfig): void;
    recoverFromCloud(key: string): Promise<boolean>;
    recoverAllFromCloud(): Promise<RecoveryResult>;
    getCacheStats(): {
        size: number;
        maxSize: number;
        hitRate: number;
    };
    getActiveTransactions(): string[];
    forceCheckpoint(): void;
    verifyDataIntegrity(): Promise<{
        totalFiles: number;
        corruptedFiles: string[];
        missingFiles: string[];
        healthy: boolean;
    }>;
    clearCache(): void;
    destroy(): void;
}
export { DocumentSchema, ValidationResult, BackupConfig, BackupMetadata, RecoveryConfig, RecoveryResult, FileRecoveryInfo };
