/**
 * Git-backed adapter for {@link TrieStorePort}.
 *
 * Implements the shadow-trie ORSet's four storage methods against
 * native Git objects:
 *
 * - `writeLeaf` / `readLeaf` -> Git blobs
 * - `writeBranch` / `readBranch` -> Git trees
 *
 * Branch tree entries are named by nibble index in lowercase hex,
 * zero-padded to the minimum width required to cover the largest
 * nibble in the write-side map:
 *
 * | Fanout | Name width | Example names        |
 * |--------|------------|----------------------|
 * | 2      | 1          | `0`, `1`             |
 * | 16     | 1          | `0`..`f`             |
 * | 64     | 2          | `00`..`3f`           |
 * | 256    | 2          | `00`..`ff`           |
 *
 * The adapter does not know the trie geometry — it picks the
 * minimum hex width at write time and decodes whatever width it
 * finds at read time. Geometry enforcement belongs to the codec
 * cycle.
 *
 * All failures are raised as {@link TrieStoreError} with a typed
 * code. Raw `Error` is banned per anti-sludge policy; consumers
 * `instanceof`-dispatch on `TrieStoreError` and branch on `code`.
 *
 * This adapter performs pure blob / tree object I/O. It does not
 * create commits, does not update refs, and does not route through
 * git-cas — per design 0018 git-cas carve-out, core trie
 * publication stays on native Git.
 *
 * @see TrieStorePort
 * @see TrieStoreError
 */
import type TrieStorePort from '../../domain/orset/trie/TrieStorePort.ts';
import type { TrieBranchEntries } from '../../domain/orset/trie/TrieBranchEntries.ts';
import { type GitPlumbing } from './gitErrorClassification.ts';
export interface GitTrieStoreAdapterDeps {
    readonly plumbing: GitPlumbing;
}
export default class GitTrieStoreAdapter implements TrieStorePort {
    private readonly plumbing;
    constructor(deps: GitTrieStoreAdapterDeps);
    readLeaf(oid: string): Promise<Uint8Array>;
    writeLeaf(data: Uint8Array): Promise<string>;
    readBranch(oid: string): Promise<TrieBranchEntries>;
    writeBranch(children: TrieBranchEntries): Promise<string>;
    private _readLeafBytes;
    private _assertObjectExists;
    private _execReadString;
    private _execWrite;
    private _probeObjectKind;
}
