import type { IPitcherClient } from "@codesandbox/pitcher-client";
import { Commands } from "./commands";
export declare class Git {
    private pitcherClient;
    private commands;
    /**
     * An event that is emitted when the git status changes.
     */
    onStatusChange: import("@codesandbox/pitcher-common").Event<import("@codesandbox/pitcher-protocol/dist/src/messages/git").GitStatus>;
    constructor(pitcherClient: IPitcherClient, commands: Commands);
    /**
     * Get the current git status.
     */
    status(): Promise<import("@codesandbox/pitcher-protocol/dist/src/messages/git").GitStatus>;
    /**
     * Commit all changes to git
     */
    commit(message: string): Promise<void>;
    /**
     * Checkout a branch
     */
    checkout(branch: string, isNewBranch?: boolean): Promise<void>;
    /**
     * Push all changes to git
     */
    push(): Promise<void>;
}
