import { DatabaseAdapter, BaseModel, Attachment, FileItem } from '../core/types';
interface RestAdapterOptions {
    baseUrl: string;
    apiKey?: string;
    headers?: Record<string, string>;
}
export declare class RestAdapter implements DatabaseAdapter {
    private baseUrl;
    private headers;
    constructor(options: RestAdapterOptions);
    initSync(): Promise<void>;
    isAvailable(): Promise<boolean>;
    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>;
    readFiles(fileIds: string[]): Promise<Map<string, Blob | ArrayBuffer | null>>;
    saveFiles(files: FileItem[]): Promise<Attachment[]>;
    count(storeName: string): Promise<number>;
    deleteFiles(fileIds: string[]): Promise<{
        deleted: string[];
        failed: string[];
    }>;
}
export {};
