type GoogleDriveErrorBody = {
    error?: {
        code?: number;
        status?: string;
        message?: string;
        errors?: Array<{
            reason?: string;
            message?: string;
        }>;
        details?: Array<{
            reason?: string;
            '@type'?: string;
        }>;
    };
};
/**
 * Stable, structured classification for Google Drive upload failures.
 *
 * Surfaced on thrown errors and on the aggregated log emitted by
 * uploadBackupToGoogleDrive so consumers (oncall monitors, callers)
 * can branch on a fixed enum instead of substring-matching the
 * user-facing message.
 */
export type GoogleDriveBackupErrorReason = 'auth_denied' | 'storage_full' | 'rate_limited' | 'service_unavailable' | 'network' | 'unknown';
/**
 * Returns true when the failure reason represents a problem the end user
 * has to wait out or resolve themselves (e.g. grant Drive permission, free
 * up storage, wait for a per-user/per-project rate limit to clear) and not
 * a system-side issue oncall should investigate.
 */
export declare const isUserActionableGoogleDriveBackupErrorReason: (reason: GoogleDriveBackupErrorReason) => boolean;
type MappedUploadError = {
    message: string;
    isRetryable: boolean;
    errorReason: GoogleDriveBackupErrorReason;
};
/**
 * Maps a Google Drive API error to an actionable user-facing message and a retry hint.
 * The retry hint is consumed by retryPromise to short-circuit on non-transient failures.
 */
export declare const mapGoogleDriveUploadError: (httpStatus: number, body: GoogleDriveErrorBody | null) => MappedUploadError;
export declare const uploadFileToGoogleDriveAppStorage: ({ accessToken, fileName, jsonData, }: {
    accessToken: string;
    fileName: string;
    jsonData: unknown;
}) => Promise<any>;
export declare const uploadFileToGoogleDrivePersonal: ({ accessToken, fileName, jsonData, }: {
    accessToken: string;
    fileName: string;
    jsonData: unknown;
}) => Promise<any>;
export declare const listFilesFromGoogleDrive: ({ accessToken, fileName, }: {
    accessToken: string;
    fileName: string;
}) => Promise<any>;
export declare const downloadFileFromGoogleDrive: ({ accessToken, fileName, }: {
    accessToken: string;
    fileName: string;
}) => Promise<unknown | null>;
export {};
//# sourceMappingURL=googleDrive.d.ts.map