import type { DevToolsSys } from "../types";
import type { Credentials } from "./credentials";
import type { GitBackupDownloadUrlResult, GitBackupDownloadUrlOptions, GitBackupUploadUrlResult, GitBackupUploadUrlOptions, GitBackupRecordOptions, GitBackupRecordResult } from "$/ai-utils";
/**
 * Requests a signed upload URL for git backup
 */
export declare function requestSignedUploadUrl(credentials: Credentials, body: GitBackupUploadUrlOptions): Promise<GitBackupUploadUrlResult>;
/**
 * Requests a signed download URL for git backup
 */
export declare function requestSignedDownloadUrl(credentials: Credentials, body: GitBackupDownloadUrlOptions): Promise<GitBackupDownloadUrlResult>;
/**
 * Records a successful git backup in Firebase
 */
export declare function recordBackup(credentials: Credentials, body: GitBackupRecordOptions): Promise<GitBackupRecordResult>;
export type GitBackupDownloadResult = {
    success: boolean;
    partial?: boolean;
    exists?: boolean;
    bundlePath?: string;
    bundleSize?: number;
    error?: Error;
    message?: string;
};
/**
 * Downloads a git backup bundle
 * @returns The path to the downloaded bundle file, or null if no backup exists
 */
export declare function downloadGitBackup(sys: DevToolsSys, credentials: Credentials, options: GitBackupDownloadUrlOptions): Promise<GitBackupDownloadResult>;
/**
 * Uploads a file stream to a signed URL
 */
export declare function uploadFileStream(filePath: string, signedUrl: string, size: number): Promise<Response>;
