import { Vertex, Edge, Prop, Offset, Link, Block, RootIndex, Index } from './types';
import { LinkCodec, ValueCodec } from './codecs';
import { BlockStore } from './block-store';
interface GraphStore {
    vertexGet: ({ root, index }: {
        root: Link;
        index: RootIndex;
    }, offset: number) => Promise<Vertex>;
    vertexRange: ({ root, index }: {
        root: Link;
        index: RootIndex;
    }, offset: number, vertexCount: number) => Promise<Vertex[]>;
    edgeGet: ({ root, index }: {
        root: Link;
        index: RootIndex;
    }, offset: number) => Promise<Edge>;
    edgeRange: ({ root, index }: {
        root: Link;
        index: RootIndex;
    }, offset: number, edgeCount: number) => Promise<Edge[]>;
    propGet: ({ root, index }: {
        root: Link;
        index: RootIndex;
    }, offset: number) => Promise<Prop>;
    propRange: ({ root, index }: {
        root: Link;
        index: RootIndex;
    }, offset: number, propCount: number) => Promise<Prop[]>;
    indexGet: ({ root, index }: {
        root: Link;
        index: RootIndex;
    }, offset: number) => Promise<Index>;
    offsetsGet: ({ root, index }: {
        root: Link;
        index: RootIndex;
    }) => Promise<{
        vertexOffset: Offset;
        edgeOffset: Offset;
        propOffset: Offset;
        indexOffset: Offset;
    }>;
    verticesAll: ({ root, index, }: {
        root: Link;
        index: RootIndex;
    }) => Promise<Vertex[]>;
    edgesAll: ({ root, index, }: {
        root: Link;
        index: RootIndex;
    }) => Promise<Edge[]>;
    propsAll: ({ root, index, }: {
        root: Link;
        index: RootIndex;
    }) => Promise<Prop[]>;
    commit: ({ root, index }: {
        root: Link;
        index: RootIndex;
    }, { vertices, edges, props, }: {
        vertices: {
            added: Map<number, Vertex>;
            updated: Map<number, Vertex>;
        };
        edges: {
            added: Map<number, Edge>;
            updated: Map<number, Edge>;
        };
        props: {
            added: Map<number, Prop>;
            updated: Map<number, Prop>;
        };
        indices: {
            added: Map<number, Index>;
            updated: Map<number, Index>;
        };
    }) => Promise<{
        root: Link;
        index: RootIndex;
        blocks: Block[];
    }>;
    packGraph: (versionRoot: Link) => Promise<Block>;
    packComputed: (versionRoot: Link, vertexOffsetStart: number, vertexCount: number, graphDepth: number) => Promise<Block>;
}
declare const graphStore: ({ chunk, linkCodec, valueCodec, blockStore, }: {
    chunk: (buffer: Uint8Array) => Uint32Array;
    linkCodec: LinkCodec;
    valueCodec: ValueCodec;
    blockStore: BlockStore;
}) => GraphStore;
export { graphStore, graphStore as graphStoreFactory, GraphStore };
//# sourceMappingURL=graph-store.d.ts.map