import type { WstackPaths } from '../utils/wstack-paths.js'; import type { SyncCategory, SyncConfig } from '../types/config.js'; export declare const ALL_SYNC_CATEGORIES: SyncCategory[]; export interface SyncResult { ok: boolean; action: 'push' | 'pull'; categories: SyncCategory[]; committedAt?: string | undefined; message: string; } /** * CloudSync — push/pull user-selected ~/.wrongstack categories to a * private GitHub repo. No git CLI needed; uses GitHub REST API via fetch. * The token is stored encrypted via SecretVault (field named `githubToken` * so the vault walker picks it up automatically). */ export declare class CloudSync { private readonly paths; private readonly getConfig; private readonly setConfig; private readonly statePath; private state; private readonly getSettingsConfigPath; constructor(paths: WstackPaths, getConfig: () => SyncConfig | null, setConfig: (c: SyncConfig) => Promise, getSettingsConfigPath?: (() => string) | undefined); status(): Promise; enable(_repo: string, _categories: SyncCategory[]): Promise; disable(): Promise; push(token: string): Promise; pull(token: string): Promise; hasLocalChanges(): Promise; loadState(): Promise; private githubFetch; private getRef; private updateRef; private getCommit; private getTreeEntries; private createCommit; private createGitTree; private getBlob; private buildLocalTree; private hashLocalCategories; private categoryToPath; private walkDir; } //# sourceMappingURL=cloud-sync.d.ts.map