import type { VisionClawConfig } from "../config/types.js";
export interface DriveFileSummary {
    id: string;
    name: string;
    mimeType: string;
    size?: string;
    modifiedTime?: string;
    webViewLink?: string;
    parents?: string[];
}
export interface DriveUploadResult {
    id: string;
    name: string;
    mimeType: string;
    webViewLink?: string;
    size?: string;
}
/**
 * Wrapper around Google Drive API v3.
 * Uses OAuth tokens from onboarding to manage files in the agent's Google Drive.
 */
export declare class GoogleDriveClient {
    private drive;
    constructor(config: VisionClawConfig);
    /**
     * List files in Google Drive with optional query filtering.
     */
    listFiles(options: {
        query?: string;
        maxResults?: number;
        folderId?: string;
        orderBy?: string;
    }): Promise<DriveFileSummary[]>;
    /**
     * Get metadata for a specific file.
     */
    getFile(fileId: string): Promise<DriveFileSummary>;
    /**
     * Upload a local file to Google Drive.
     */
    uploadFile(options: {
        localPath: string;
        name?: string;
        mimeType?: string;
        folderId?: string;
        onProgress?: (uploadedBytes: number) => void;
    }): Promise<DriveUploadResult>;
    /**
     * Download a file from Google Drive to a local path.
     */
    downloadFile(options: {
        fileId: string;
        localPath: string;
    }): Promise<void>;
    /**
     * Create a folder in Google Drive.
     */
    createFolder(options: {
        name: string;
        parentId?: string;
    }): Promise<DriveFileSummary>;
    /**
     * Share a file with a specific email address.
     */
    shareFile(options: {
        fileId: string;
        email: string;
        role: "reader" | "writer" | "commenter";
        sendNotification?: boolean;
    }): Promise<void>;
    /**
     * Move a file to trash (soft delete).
     */
    deleteFile(fileId: string): Promise<void>;
    /**
     * Move a file to a different folder.
     */
    moveFile(options: {
        fileId: string;
        newFolderId: string;
    }): Promise<DriveFileSummary>;
}
//# sourceMappingURL=google-drive.d.ts.map