import { DownloadFnParamTypes } from './types';
import type { Loader, AnyBlock, AnyLink, DbMeta } from '@fireproof/core';
export type LoadHandler = (dbMetas: DbMeta[]) => Promise<void>;
import { Connection } from './connection';
import { DataStore as DataStoreBase, MetaStore as MetaStoreBase } from '@fireproof/core';
export declare class RemoteDataStore extends DataStoreBase {
    tag: string;
    connection: Connection;
    type: DownloadFnParamTypes;
    constructor(loader: Loader, connection: Connection, type?: DownloadFnParamTypes);
    prefix(): string;
    load(carCid: AnyLink): Promise<AnyBlock>;
    save(car: AnyBlock, opts?: {
        public?: boolean;
    }): Promise<void | AnyLink>;
    remove(_cid: AnyLink): Promise<void>;
}
export declare class RemoteMetaStore extends MetaStoreBase {
    tag: string;
    connection: Connection;
    subscribers: Map<string, LoadHandler[]>;
    constructor(name: string, connection: Connection);
    onLoad(branch: string, loadHandler: LoadHandler): () => void;
    prefix(): string;
    load(branch?: string): Promise<DbMeta[] | null>;
    save(meta: DbMeta, branch?: string): Promise<DbMeta[] | null>;
    dbMetasForByteHeads(byteHeads: Uint8Array[]): DbMeta[];
}
