import { type GitOperationLock } from "../../../../git-operation-lock.js";
import type { GitService } from "../../../../git-service/index.js";
/**
 * Minimal interface for the sync service dependency (used by pull operation).
 */
export interface GitPullSyncService {
    uploadDirectory(source: string): void;
}
export interface GitToolDeps {
    gitService?: GitService;
    syncService?: GitPullSyncService;
    gitOperationLock?: GitOperationLock;
    onGitOperationComplete?: () => void;
    onGitSetupRequired?: () => void | Promise<void>;
}
export declare const gitToolFactory: import("../types.js").ToolFactory<GitToolDeps, import("../types.js").Tool<{
    operation: "log" | "commit" | "pull" | "status" | "diff" | "stage" | "merge_abort" | "create_pr";
    message?: string | undefined;
    body?: string | undefined;
    paths?: string[] | undefined;
    title?: string | undefined;
    count?: number | undefined;
    staged?: boolean | undefined;
}, {
    aborted: true;
} | {
    commits: Array<{
        message: string;
        sha: string;
        url?: string;
    }>;
} | {
    diff: string;
} | {
    files: unknown[];
    ahead: number;
    behind: number;
} | {
    sha: string;
    pushed: true;
    url?: string;
} | {
    sha: string;
    pushed: false;
    error: string;
} | {
    staged: string[];
} | {
    prUrl: string;
    provider: "github";
} | {
    setupRequired: boolean;
    readonly merged?: undefined;
    conflictedFiles?: undefined;
    readonly verificationRequired?: undefined;
} | {
    merged: boolean;
    conflictedFiles: string[];
    setupRequired?: undefined;
    readonly verificationRequired?: undefined;
} | {
    readonly merged: true;
    readonly verificationRequired: "Merge complete. You MUST now run build_debug and build_captureScreenshot to verify the app still works after this merge. If issues are found, fix them immediately.";
    setupRequired?: undefined;
    conflictedFiles?: undefined;
}>>;
//# sourceMappingURL=git.d.ts.map