import { IConnection } from "@nestia/fetcher";
import typia from "typia";
import { IApiReposGitTrees } from "../../../../structures/IApiReposGitTrees";
import { body } from "../../../../structures/body";
import { git_minus_tree } from "../../../../structures/git_minus_tree";
/**
 * Create a tree.
 * The tree creation API accepts nested entries. If you specify both a tree and a nested path modifying that tree, this endpoint will overwrite the contents of the tree with the new path contents, and create a new tree structure.
 *
 * If you use this endpoint to add, delete, or modify the file contents in a tree, you will need to commit the tree and then update a branch to point to the commit. For more information see "[Create a commit](https://docs.github.com/rest/git/commits#create-a-commit)" and "[Update a reference](https://docs.github.com/rest/git/refs#update-a-reference)."
 *
 * Returns an error if you try to delete a file that does not exist.
 *
 * @tag git
 * @path repos/:owner/:repo/git/trees
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function postByOwnerAndRepo(connection: IConnection<postByOwnerAndRepo.Headers>, owner: string, repo: string, body: postByOwnerAndRepo.Input): Promise<postByOwnerAndRepo.Output>;
export declare namespace postByOwnerAndRepo {
    type Headers = IApiReposGitTrees.PostHeader;
    type Input = body;
    type Output = git_minus_tree;
    const METADATA: {
        readonly method: "POST";
        readonly path: "/repos/:owner/:repo/git/trees";
        readonly request: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: (owner: string, repo: string) => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => git_minus_tree;
    const simulate: (connection: IConnection<postByOwnerAndRepo.Headers>, owner: string, repo: string, body: postByOwnerAndRepo.Input) => Output;
}
/**
 * Get a tree.
 * Returns a single tree using the SHA1 value or ref name for that tree.
 *
 * If `truncated` is `true` in the response then the number of items in the `tree` array exceeded our maximum limit. If you need to fetch more items, use the non-recursive method of fetching trees, and fetch one sub-tree at a time.
 *
 * > [!NOTE]
 * > The limit for the `tree` array is 100,000 entries with a maximum size of 7 MB when using the `recursive` parameter.
 *
 * @param tree_sha The SHA1 value or ref (branch or tag) name of the tree.
 * @tag git
 * @path repos/:owner/:repo/git/trees/:tree_sha
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function getByOwnerAndRepoAndTree_sha(connection: IConnection<getByOwnerAndRepoAndTree_sha.Headers>, owner: string, repo: string, tree_sha: string, query: getByOwnerAndRepoAndTree_sha.Query): Promise<getByOwnerAndRepoAndTree_sha.Output>;
export declare namespace getByOwnerAndRepoAndTree_sha {
    type Headers = IApiReposGitTrees.GetHeader;
    type Query = IApiReposGitTrees.GetQuery;
    type Output = git_minus_tree;
    const METADATA: {
        readonly method: "GET";
        readonly path: "/repos/:owner/:repo/git/trees/:tree_sha";
        readonly request: null;
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: (owner: string, repo: string, tree_sha: string, query: getByOwnerAndRepoAndTree_sha.Query) => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => git_minus_tree;
    const simulate: (connection: IConnection<getByOwnerAndRepoAndTree_sha.Headers>, owner: string, repo: string, tree_sha: string, query: getByOwnerAndRepoAndTree_sha.Query) => Output;
}
