import { BlockStore } from './block-store';
import { LinkCodec, ValueCodec } from './codecs';
import { Graph } from './graph';
import { GraphStore } from './graph-store';
import { Link } from './types';
import { VersionStore } from './version-store';
import { CreateAxiosDefaults } from 'axios';
interface RelayClientPlumbing {
    storePush(chunkSize: number, bytes: Uint8Array): Promise<PlumbingStorePushResponse>;
    storePull(chunkSize: number, versionStoreId: string): Promise<Uint8Array | undefined>;
    storeResolve(versionStoreId: string): Promise<string | undefined>;
    graphPush(bytes: Uint8Array): Promise<PlumbingGraphPushResponse>;
    graphPull(versionRoot: string): Promise<Uint8Array | undefined>;
    indexPull(versionRoot: string): Promise<Uint8Array | undefined>;
    blocksPush(bytes: Uint8Array): Promise<PlumbingBlocksPushResponse>;
    blocksPull(links: string[]): Promise<Uint8Array | undefined>;
}
type PlumbingStorePushResponse = {
    storeRoot: string;
    versionRoot: string;
};
type PlumbingGraphPushResponse = {
    versionRoot: string;
};
type PlumbingBlocksPushResponse = {
    blockCount: number;
};
type BasicPushResponse = {
    storeRoot: Link;
    versionRoot: Link;
};
interface RelayClientBasic {
    push(versionStoreRoot: Link, versionRoot?: Link): Promise<BasicPushResponse>;
    pull(versionStoreId: string, localVersionStoreRoot?: Link): Promise<{
        versionStore: VersionStore;
        graphStore: GraphStore;
        graph: Graph;
    } | undefined>;
}
declare const relayClientBasicFactory: ({ chunk, chunkSize, linkCodec, valueCodec, blockStore, incremental, }: {
    chunk: (buffer: Uint8Array) => Uint32Array;
    chunkSize: number;
    linkCodec: LinkCodec;
    valueCodec: ValueCodec;
    blockStore: BlockStore;
    incremental?: boolean;
}, config: CreateAxiosDefaults<any>) => RelayClientBasic;
declare const relayClientPlumbingFactory: (config: CreateAxiosDefaults<any>) => RelayClientPlumbing;
export { relayClientPlumbingFactory, RelayClientPlumbing, relayClientBasicFactory, RelayClientBasic, BasicPushResponse, PlumbingGraphPushResponse, PlumbingStorePushResponse, };
//# sourceMappingURL=relay-client.d.ts.map