/**
 * Runtime-validated capability extraction from persistence objects.
 *
 * Instead of casting persistence to port types (which lies about
 * what the value actually is at runtime), these helpers extract
 * exactly the methods each adapter needs and validate they exist.
 *
 * This is the honest boundary: the persistence object has the
 * methods, but it is NOT an instanceof any focused port class.
 * The extractors prove capability at the seam and return a
 * frozen object with bound methods.
 *
 * @module infrastructure/adapters/requireCapabilities
 */
/** Thrown when persistence is missing a required method. */
export declare class MissingCapabilityError extends Error {
    readonly method: string;
    constructor(method: string);
}
/** Extracts blob read/write capability from a persistence object. */
export declare function requireBlobPort(persistence: unknown): {
    readBlob(oid: string): Promise<Uint8Array>;
    writeBlob(content: Uint8Array | string): Promise<string>;
};
/** Extracts commit query capability from a persistence object. */
export declare function requireCommitPort(persistence: unknown): {
    getNodeInfo(sha: string): Promise<{
        sha: string;
        message: string;
        author: string;
        date: string;
        parents: string[];
    }>;
};
/** Extracts tree read/write capability from a persistence object. */
export declare function requireTreePort(persistence: unknown): {
    readTreeOids(treeOid: string): Promise<Record<string, string>>;
    writeTree(entries: string[]): Promise<string>;
};
