export interface FetchResult {
    /** Absolute path to the extracted tree. The caller is responsible for deleting it. */
    tempDir: string;
    /** Git ref that was fetched. */
    ref: string;
    /**
     * True if the caller owns the tempDir and should delete it after use. False
     * when a test (or other caller) points at a pre-existing directory they'll
     * clean up themselves. Defaults to true when the real fetcher ran.
     */
    owned: boolean;
}
export interface FetchDeps {
    /** HTTP GET. Injected so tests can return in-memory zip buffers. */
    get?: (url: string, config: {
        responseType: "arraybuffer";
        timeout?: number;
        maxContentLength?: number;
    }) => Promise<{
        data: Buffer | ArrayBuffer;
    }>;
    /** Filesystem access (mostly for tests that want to isolate temp dirs). */
    mkdtempSync?: (prefix: string) => string;
}
/**
 * Download and extract the agent-tools repo at the given ref, stripping the
 * top-level `agent-tools-<ref>/` wrapper dir that GitHub adds to codeload zips.
 */
export declare function fetchAgentToolsZip(ref?: string, deps?: FetchDeps): Promise<FetchResult>;
//# sourceMappingURL=fetcher.d.ts.map