import IndexStorePort from '../../ports/IndexStorePort.ts';
import type CodecPort from '../../ports/CodecPort.ts';
import type CodecValue from '../../domain/types/codec/CodecValue.ts';
import WarpStream from '../../domain/stream/WarpStream.ts';
import type { IndexShard } from '../../domain/artifacts/IndexShard.ts';
import type BlobStoragePort from '../../ports/BlobStoragePort.ts';
interface BlobPort {
    readBlob(oid: string): Promise<Uint8Array>;
    writeBlob(content: Uint8Array | string): Promise<string>;
}
interface TreePort {
    readTreeOids(treeOid: string): Promise<Record<string, string>>;
    writeTree(entries: string[]): Promise<string>;
}
/**
 * CBOR-backed implementation of IndexStorePort.
 *
 * Owns the codec and raw Git persistence. Domain services produce
 * IndexShard streams; the adapter encodes, writes blobs, and
 * assembles Git trees. On read, the adapter decodes blobs and
 * constructs IndexShard subclass instances.
 *
 * Write pipeline reuses existing infrastructure transforms:
 *   WarpStream<IndexShard>
 *     → IndexShardEncodeTransform → [path, bytes]
 *     → GitBlobWriteTransform     → [path, oid]
 *     → TreeAssemblerSink         → tree OID
 */
export declare class CborIndexStoreAdapter extends IndexStorePort {
    private readonly _codec;
    private readonly _blobPort;
    private readonly _treePort;
    private readonly _blobStorage;
    constructor({ codec, blobPort, treePort, blobStorage }: {
        codec: CodecPort;
        blobPort: BlobPort;
        treePort: TreePort;
        blobStorage?: BlobStoragePort | null;
    });
    writeShards(shardStream: WarpStream<IndexShard>): Promise<string>;
    scanShards(treeOid: string): WarpStream<IndexShard>;
    readShardOids(treeOid: string): Promise<Record<string, string>>;
    decodeShard<TDecoded extends CodecValue = CodecValue>(blobOid: string): Promise<TDecoded>;
}
export {};
