/**
 * IndexedDB service for local patient data storage
 */
import { LocalMinifiedPatient } from '../types';
export declare class IndexedDBService {
    private dbName;
    private version;
    private db;
    private workspaceId;
    constructor(workspaceId: string);
    /**
     * Initialize the IndexedDB connection
     */
    init(): Promise<void>;
    /**
     * Get workspace-specific store name
     */
    private getStoreName;
    /**
     * Store multiple patients in batch
     */
    batchStore(patients: LocalMinifiedPatient[]): Promise<void>;
    /**
     * Search patients by prefix with field-specific logic
     */
    searchByPrefix(prefix: string, limit?: number): Promise<LocalMinifiedPatient[]>;
    /**
     * Get patient by OID (primary key)
     */
    getByOid(oid: string): Promise<LocalMinifiedPatient | null>;
    /**
     * Update single patient by OID
     */
    updatePatient(patient: LocalMinifiedPatient): Promise<void>;
    /**
     * Partially update patient by OID - only updates specified fields
     */
    partialUpdatePatient(oid: string, updates: Partial<LocalMinifiedPatient>): Promise<void>;
    /**
     * Check if any data exists
     */
    hasData(): Promise<boolean>;
    /**
     * Get all patients (for internal use)
     */
    getAllPatients(): Promise<LocalMinifiedPatient[]>;
    /**
     * Get the latest update timestamp
     */
    getLatestUpdateTime(): Promise<number>;
    /**
     * Clear all data for the current workspace
     */
    clearData(): Promise<void>;
    /**
     * Close the database connection
     */
    close(): void;
}
