import { PluginBase, PluginMeta } from "./PluginBase";
import { PluginContext } from "./types";
import { MinimalEmbedding } from "../types";
export declare class GitPlugin extends PluginBase {
    readonly meta: PluginMeta;
    private knowhowGitPath;
    private knowhowDir;
    private projectRoot;
    private projectHasGit;
    private eventService;
    private currentTask;
    private lintStartCommits;
    static isListening: boolean;
    constructor(context?: PluginContext);
    call(input: string): Promise<string>;
    private getProjectGitStatus;
    embed(input: string): Promise<MinimalEmbedding[]>;
    private initializeKnowhowRepo;
    private gitCommand;
    private safeGitCommand;
    private setupEventListeners;
    private getCurrentBranch;
    private getRepoHash;
    private ensureCleanState;
    hasChanges(): Promise<boolean>;
    setBranch(branchName: string): Promise<void>;
    createBranch(branchName: string): Promise<void>;
    commit(message: string, files?: string[]): Promise<void>;
    commitAll(message: string): Promise<void>;
    commitWithEvents(message: string, files?: string[]): Promise<void>;
    private ensureValidHead;
    private autoCommit;
    private handleNewTask;
    private handleTaskComplete;
    private handleLintFinished;
    getGitStatus(): Promise<string>;
    getGitLog(count?: number): Promise<string>;
    getBranches(): Promise<string[]>;
    manualCommit(message: string, files?: string[]): Promise<void>;
    manualBranch(branchName: string): Promise<void>;
    squashMerge(branchName: string, message?: string, squash?: boolean): Promise<void>;
}
