import { DatabaseAdapter, Attachment, BaseModel } from '../core/types';
interface IndexedDBAdapterOptions {
    dbName?: string;
    fileStoreName?: string;
}
export declare class IndexedDBAdapter implements DatabaseAdapter {
    private db;
    private dbName;
    private initPromise;
    private stores;
    private fileStoreName;
    constructor(options?: IndexedDBAdapterOptions);
    isAvailable(): Promise<boolean>;
    initSync(): Promise<void>;
    private ensureStore;
    read<T extends BaseModel>(storeName: string, options?: {
        limit?: number;
        offset?: number;
        since?: number;
    }): Promise<{
        items: T[];
        hasMore: boolean;
    }>;
    readBulk<T extends BaseModel>(storeName: string, ids: string[]): Promise<T[]>;
    putBulk<T extends BaseModel>(storeName: string, items: T[]): Promise<T[]>;
    deleteBulk(storeName: string, ids: string[]): Promise<void>;
    clearStore(storeName: string): Promise<void>;
    readFile(fileId: string): Promise<Blob | ArrayBuffer>;
    saveFile(content: Blob | ArrayBuffer | string, fileId: string): Promise<Attachment>;
    deleteFile(fileId: string): Promise<void>;
    private ensureFileStore;
    close(): Promise<void>;
    deleteDatabase(): Promise<void>;
}
export {};
