import { IConnection } from "@nestia/fetcher";
import typia from "typia";
import { IApiReposBranchesRename } from "../../../../structures/IApiReposBranchesRename";
import { body } from "../../../../structures/body";
import { branch_minus_with_minus_protection } from "../../../../structures/branch_minus_with_minus_protection";
/**
 * Rename a branch.
 * Renames a branch in a repository.
 *
 * > [!NOTE]
 * > Although the API responds immediately, the branch rename process might take some extra time to complete in the background. You won't be able to push to the old branch name while the rename process is in progress. For more information, see "[Renaming a branch](https://docs.github.com/github/administering-a-repository/renaming-a-branch)".
 *
 * The authenticated user must have push access to the branch. If the branch is the default branch, the authenticated user must also have admin or owner permissions.
 *
 * In order to rename the default branch, fine-grained access tokens also need the `administration:write` repository permission.
 *
 * @tag repos
 * @path repos/:owner/:repo/branches/:branch/rename
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function postByOwnerAndRepoAndBranch(connection: IConnection<postByOwnerAndRepoAndBranch.Headers>, owner: string, repo: string, branch: string, body: postByOwnerAndRepoAndBranch.Input): Promise<postByOwnerAndRepoAndBranch.Output>;
export declare namespace postByOwnerAndRepoAndBranch {
    type Headers = IApiReposBranchesRename.PostHeader;
    type Input = body;
    type Output = branch_minus_with_minus_protection;
    const METADATA: {
        readonly method: "POST";
        readonly path: "/repos/:owner/:repo/branches/:branch/rename";
        readonly request: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: (owner: string, repo: string, branch: string) => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => branch_minus_with_minus_protection;
    const simulate: (connection: IConnection<postByOwnerAndRepoAndBranch.Headers>, owner: string, repo: string, branch: string, body: postByOwnerAndRepoAndBranch.Input) => Output;
}
