import type TreeEntryLimit from '../../domain/tree/TreeEntryLimit.ts';
import TreeEntryPath from '../../domain/tree/TreeEntryPath.ts';
import TreeEntryPrefixBatch from '../../domain/tree/TreeEntryPrefixBatch.ts';
import type { TreeEntryProbeResult } from '../../ports/TreeEntryProbePort.ts';
import { type GitPlumbing } from './gitErrorClassification.ts';
import type OperationPolicyPort from '../../ports/OperationPolicyPort.ts';
import type { OperationPolicyExecuteOptions } from '../../ports/OperationPolicyPort.ts';
type GitRecursiveTreeOidReaderAdapterOptions = {
    readonly plumbing: GitPlumbing;
    readonly policy: OperationPolicyPort;
    readonly retryOptions: OperationPolicyExecuteOptions;
};
export default class GitRecursiveTreeOidReaderAdapter {
    private readonly _plumbing;
    private readonly _policy;
    private readonly _retryOptions;
    constructor(options: GitRecursiveTreeOidReaderAdapterOptions);
    readTreeOids(treeOid: string): Promise<Record<string, string>>;
    readTreeEntryOid(treeOid: string, path: TreeEntryPath): Promise<TreeEntryProbeResult>;
    readTreeEntryPrefix(treeOid: string, prefix: TreeEntryPath, limit: TreeEntryLimit): Promise<TreeEntryPrefixBatch>;
}
export {};
