import { type DBSchema, type IDBPDatabase } from 'idb';
interface SyncMeta {
    key: string;
    value: any;
}
interface SyncQueueItem {
    id: string;
    [key: string]: any;
}
interface SyncOperation extends SyncQueueItem {
    status: 'pending' | 'processing' | 'completed' | 'failed';
    error?: string;
}
interface SyncDBSchema extends DBSchema {
    sync_queue: {
        key: string;
        value: SyncOperation;
    };
    sync_meta: {
        key: string;
        value: SyncMeta;
    };
    [key: string]: {
        key: string;
        value: any;
    };
}
export declare class IDBAdapter implements LocalAdapter<IDBPDatabase<SyncDBSchema>> {
    private db;
    private dbName;
    private version;
    constructor(dbName?: string, version?: number);
    private ensureInitialized;
    init(schema?: {
        [table: string]: string;
    }): Promise<void>;
    insert(table: string, data: any): Promise<any>;
    update(table: string, id: string, data: any): Promise<any>;
    delete(table: string, id: string): Promise<void>;
    find(table: string, query?: any): Promise<any[]>;
    findOne(table: string, id: string): Promise<any | null>;
    addToQueue(op: SyncOperation): Promise<void>;
    getQueue(): Promise<SyncOperation[]>;
    removeFromQueue(ids: string[]): Promise<void>;
    updateQueueStatus(id: string, status: SyncOperation['status'], error?: string): Promise<void>;
    getLastSync(): Promise<number>;
    setLastSync(timestamp: number): Promise<void>;
    getClientId(): Promise<string>;
}
export {};
