import { type SimpleGit } from 'simple-git'; import type { SyncBackend } from './SyncBackend.js'; export declare class GitBackend implements SyncBackend { private git; private repoPath; private branch; private logger; init(repoPath: string, remoteUrl?: string): Promise; /** * Ensure .sops.yaml exists in the repo with this machine's age public key. * Reads the key from ~/.config/sops/age/keys.txt (created during setup). * No-op if age key doesn't exist (encryption not set up). */ private ensureSopsConfig; private ensureGitignore; pull(): Promise; /** * TOFU (Trust-On-First-Use) multi-machine key sync. * After pull: if .sops.yaml has new keys, auto-run `sops updatekeys`. * Before push: ensure this machine's key is in .sops.yaml. */ syncSopsKeys(): Promise; commit(message: string): Promise; push(): Promise; fetch(): Promise; rebaseAbort(): Promise; hasChanges(): Promise; readFileAtRef(ref: string, filePath: string): Promise; resetToRef(ref: string): Promise; getGit(): SimpleGit; getRepoPath(): string; getBranch(): string; }