import type { Options as ClientOptions, TDataShape, Client } from '@hey-api/client-fetch';
import type { GitStatusData, GitRemotesData, GitTargetDiffData, GitPullData, GitDiscardData, GitCommitData, GitPushData, GitPushToRemoteData, GitRenameBranchData, GitRemoteContentData, GitDiffStatusData, GitResetLocalWithRemoteData, GitCheckoutInitialBranchData, GitTransposeLinesData } from './types.gen';
export type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean> = ClientOptions<TData, ThrowOnError> & {
    /**
     * You can provide a client instance returned by `createClient()` instead of
     * individual options. This might be also useful if you want to implement a
     * custom client.
     */
    client?: Client;
};
/**
 * Get git status
 * Retrieve current git status including changed files, branch information, and commits
 */
export declare const gitStatus: <ThrowOnError extends boolean = false>(options: Options<GitStatusData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<import("./types.gen").SuccessResponse & {
    result?: import("./types.gen").GitStatus;
}, import("./types.gen").ErrorResponse & {
    error?: import("./types.gen").CommonError;
}, ThrowOnError>;
/**
 * Get git remotes
 * Retrieve git remote information
 */
export declare const gitRemotes: <ThrowOnError extends boolean = false>(options: Options<GitRemotesData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<import("./types.gen").SuccessResponse & {
    result?: import("./types.gen").GitRemotes;
}, import("./types.gen").ErrorResponse & {
    error?: import("./types.gen").CommonError;
}, ThrowOnError>;
/**
 * Get git target diff
 * Retrieve diff between current branch and target branch
 */
export declare const gitTargetDiff: <ThrowOnError extends boolean = false>(options: Options<GitTargetDiffData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<import("./types.gen").SuccessResponse & {
    result?: import("./types.gen").GitTargetDiff;
}, import("./types.gen").ErrorResponse & {
    error?: import("./types.gen").CommonError;
}, ThrowOnError>;
/**
 * Pull from remote
 * Pull changes from remote repository
 */
export declare const gitPull: <ThrowOnError extends boolean = false>(options: Options<GitPullData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<import("./types.gen").SuccessResponse & {
    result?: unknown;
}, import("./types.gen").ErrorResponse & {
    error?: import("./types.gen").CommonError;
}, ThrowOnError>;
/**
 * Discard changes
 * Discard local changes for specified paths
 */
export declare const gitDiscard: <ThrowOnError extends boolean = false>(options: Options<GitDiscardData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<import("./types.gen").SuccessResponse & {
    result?: {
        paths?: Array<string>;
    };
}, import("./types.gen").ErrorResponse & {
    error?: import("./types.gen").CommonError;
}, ThrowOnError>;
/**
 * Commit changes
 * Commit changes to the repository
 */
export declare const gitCommit: <ThrowOnError extends boolean = false>(options: Options<GitCommitData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<import("./types.gen").SuccessResponse & {
    result?: {
        shellId: string;
    };
}, import("./types.gen").ErrorResponse & {
    error?: import("./types.gen").CommonError;
}, ThrowOnError>;
/**
 * Push changes
 * Push local commits to remote repository
 */
export declare const gitPush: <ThrowOnError extends boolean = false>(options: Options<GitPushData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<import("./types.gen").SuccessResponse & {
    result?: unknown;
}, import("./types.gen").ErrorResponse & {
    error?: import("./types.gen").CommonError;
}, ThrowOnError>;
/**
 * Push to remote
 * Push to a specific remote repository
 */
export declare const gitPushToRemote: <ThrowOnError extends boolean = false>(options: Options<GitPushToRemoteData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<import("./types.gen").SuccessResponse & {
    result?: unknown;
}, import("./types.gen").ErrorResponse & {
    error?: import("./types.gen").CommonError;
}, ThrowOnError>;
/**
 * Rename branch
 * Rename a git branch
 */
export declare const gitRenameBranch: <ThrowOnError extends boolean = false>(options: Options<GitRenameBranchData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<import("./types.gen").SuccessResponse & {
    result?: unknown;
}, import("./types.gen").ErrorResponse & {
    error?: import("./types.gen").CommonError;
}, ThrowOnError>;
/**
 * Get remote content
 * Retrieve content from a remote repository
 */
export declare const gitRemoteContent: <ThrowOnError extends boolean = false>(options: Options<GitRemoteContentData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<import("./types.gen").SuccessResponse & {
    result?: {
        content: string;
    };
}, import("./types.gen").ErrorResponse & {
    error?: import("./types.gen").CommonError;
}, ThrowOnError>;
/**
 * Get diff status
 * Retrieve diff status between two git references
 */
export declare const gitDiffStatus: <ThrowOnError extends boolean = false>(options: Options<GitDiffStatusData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<import("./types.gen").SuccessResponse & {
    result?: import("./types.gen").GitDiffStatusResult;
}, import("./types.gen").ErrorResponse & {
    error?: import("./types.gen").CommonError;
}, ThrowOnError>;
/**
 * Reset local with remote
 * Reset local repository to match the remote state
 */
export declare const gitResetLocalWithRemote: <ThrowOnError extends boolean = false>(options: Options<GitResetLocalWithRemoteData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<import("./types.gen").SuccessResponse & {
    result?: unknown;
}, import("./types.gen").ErrorResponse & {
    error?: import("./types.gen").CommonError;
}, ThrowOnError>;
/**
 * Checkout initial branch
 * Checkout the initial branch of the repository
 */
export declare const gitCheckoutInitialBranch: <ThrowOnError extends boolean = false>(options: Options<GitCheckoutInitialBranchData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<import("./types.gen").SuccessResponse & {
    result?: unknown;
}, import("./types.gen").ErrorResponse & {
    error?: import("./types.gen").CommonError;
}, ThrowOnError>;
/**
 * Transpose lines
 * Transpose line numbers from one git reference to another
 */
export declare const gitTransposeLines: <ThrowOnError extends boolean = false>(options: Options<GitTransposeLinesData, ThrowOnError>) => import("@hey-api/client-fetch").RequestResult<import("./types.gen").SuccessResponse & {
    result?: Array<{
        path: string;
        line: number;
    } | unknown>;
}, import("./types.gen").ErrorResponse & {
    error?: import("./types.gen").CommonError;
}, ThrowOnError>;
