import { CloudProvider, ProviderConfig, ProviderTokens, RemoteFile } from '../types';
export declare class GoogleDriveProvider implements CloudProvider {
    config: ProviderConfig;
    private oauth2Client;
    private folderIdCache;
    constructor(config: ProviderConfig);
    getAuthUrl(redirectUri: string, state?: string): string;
    handleCallback(code: string, redirectUri: string): Promise<ProviderTokens>;
    refreshToken(): Promise<ProviderTokens>;
    isAuthorized(): boolean;
    ensureAuth(): Promise<void>;
    private drive;
    /**
     * Walk path segments and return the Drive folder ID, creating any missing folders.
     * Empty path or '/' returns 'root'.
     */
    private getOrCreateFolder;
    /**
     * Find the Drive file ID for a given remote path.
     * Returns null if not found.
     */
    private findFileId;
    listFiles(remotePath: string): Promise<RemoteFile[]>;
    uploadFile(localPath: string, remotePath: string): Promise<void>;
    downloadFile(remotePath: string, localPath: string): Promise<void>;
    deleteFile(remotePath: string): Promise<void>;
    mkdir(remotePath: string): Promise<void>;
}
//# sourceMappingURL=google-drive.d.ts.map