import { BlobStore } from './blob-store.js';
export declare class BlobResolver {
    private blobStore;
    private rootPath;
    constructor(blobStore: BlobStore, rootPath: string);
    /**
     * Ordered lookup: local blob → git worktree → null.
     */
    get(contentHash: string, filePath?: string): Buffer | null;
    /**
     * Check existence across tiers.
     */
    has(contentHash: string, filePath?: string): boolean;
    /**
     * Check if hash exists in local .trellis/blobs/ only.
     */
    hasLocal(contentHash: string): boolean;
    /**
     * Resolve content from git worktree. Reads the file at filePath,
     * computes SHA-256, and compares to contentHash.
     */
    resolveFromGit(contentHash: string, absPath: string): Buffer | null;
    /**
     * Detect whether rootPath is inside a git working tree.
     */
    isGitRepo(): boolean;
    /**
     * Return whether blobStore.put can be skipped for this content.
     * True when the file exists in the worktree and SHA-256 matches contentHash.
     */
    canSkipPut(filePath: string, contentHash: string): boolean;
    /**
     * Return the underlying blob store (for raw local-only access).
     */
    getBlobStore(): BlobStore;
}
//# sourceMappingURL=blob-resolver.d.ts.map