import { IConnection } from "@nestia/fetcher";
import typia from "typia";
import { IApiReposIssues } from "../../../structures/IApiReposIssues";
import { issue } from "../../../structures/issue";
import { body } from "../../../structures/body";
export * as comments from "./comments";
export * as events from "./events";
export * as assignees from "./assignees";
export * as labels from "./labels";
export * as lock from "./lock";
export * as reactions from "./reactions";
export * as timeline from "./timeline";
/**
 * List repository issues.
 * List issues in a repository. Only open issues will be listed.
 *
 * > [!NOTE]
 * > GitHub's REST API considers every pull request an issue, but not every issue is a pull request. For this reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull request id, use the "[List pull requests](https://docs.github.com/rest/pulls/pulls#list-pull-requests)" endpoint.
 *
 * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)."
 *
 * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type.
 * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`.
 * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`.
 * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`.
 *
 * @tag issues
 * @path repos/:owner/:repo/issues
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function getByOwnerAndRepo(connection: IConnection<getByOwnerAndRepo.Headers>, owner: string, repo: string, query: getByOwnerAndRepo.Query): Promise<getByOwnerAndRepo.Output>;
export declare namespace getByOwnerAndRepo {
    type Headers = IApiReposIssues.GetHeader;
    type Query = IApiReposIssues.GetQuery;
    type Output = issue[];
    const METADATA: {
        readonly method: "GET";
        readonly path: "/repos/:owner/:repo/issues";
        readonly request: null;
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: (owner: string, repo: string, query: getByOwnerAndRepo.Query) => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => issue[];
    const simulate: (connection: IConnection<getByOwnerAndRepo.Headers>, owner: string, repo: string, query: getByOwnerAndRepo.Query) => Output;
}
/**
 * Create an issue.
 * Any user with pull access to a repository can create an issue. If [issues are disabled in the repository](https://docs.github.com/articles/disabling-issues/), the API returns a `410 Gone` status.
 *
 * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). Creating content too quickly using this endpoint may result in secondary rate limiting. For more information, see "[Rate limits for the API](https://docs.github.com/rest/using-the-rest-api/rate-limits-for-the-rest-api#about-secondary-rate-limits)"
 * and "[Best practices for using the REST API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)."
 *
 * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)."
 *
 * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type.
 * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`.
 * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`.
 * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`.
 *
 * @tag issues
 * @path repos/:owner/:repo/issues
 * @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 = IApiReposIssues.PostHeader;
    type Input = body;
    type Output = issue;
    const METADATA: {
        readonly method: "POST";
        readonly path: "/repos/:owner/:repo/issues";
        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>) => issue;
    const simulate: (connection: IConnection<postByOwnerAndRepo.Headers>, owner: string, repo: string, body: postByOwnerAndRepo.Input) => Output;
}
/**
 * Get an issue.
 * The API returns a [`301 Moved Permanently` status](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api#follow-redirects) if the issue was
 * [transferred](https://docs.github.com/articles/transferring-an-issue-to-another-repository/) to another repository. If
 * the issue was transferred to or deleted from a repository where the authenticated user lacks read access, the API
 * returns a `404 Not Found` status. If the issue was deleted from a repository where the authenticated user has read
 * access, the API returns a `410 Gone` status. To receive webhook events for transferred and deleted issues, subscribe
 * to the [`issues`](https://docs.github.com/webhooks/event-payloads/#issues) webhook.
 *
 * > [!NOTE]
 * > GitHub's REST API considers every pull request an issue, but not every issue is a pull request. For this reason, "Issues" endpoints may return both issues and pull requests in the response. You can identify pull requests by the `pull_request` key. Be aware that the `id` of a pull request returned from "Issues" endpoints will be an _issue id_. To find out the pull request id, use the "[List pull requests](https://docs.github.com/rest/pulls/pulls#list-pull-requests)" endpoint.
 *
 * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)."
 *
 * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type.
 * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`.
 * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`.
 * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`.
 *
 * @tag issues
 * @path repos/:owner/:repo/issues/:issue_number
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function getByOwnerAndRepoAndIssue_number(connection: IConnection<getByOwnerAndRepoAndIssue_number.Headers>, owner: string, repo: string, issue_number: string): Promise<getByOwnerAndRepoAndIssue_number.Output>;
export declare namespace getByOwnerAndRepoAndIssue_number {
    type Headers = IApiReposIssues.GetHeader;
    type Output = issue;
    const METADATA: {
        readonly method: "GET";
        readonly path: "/repos/:owner/:repo/issues/:issue_number";
        readonly request: null;
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: (owner: string, repo: string, issue_number: string) => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => issue;
    const simulate: (connection: IConnection<getByOwnerAndRepoAndIssue_number.Headers>, owner: string, repo: string, issue_number: string) => Output;
}
/**
 * Update an issue.
 * Issue owners and users with push access can edit an issue.
 *
 * This endpoint supports the following custom media types. For more information, see "[Media types](https://docs.github.com/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types)."
 *
 * - **`application/vnd.github.raw+json`**: Returns the raw markdown body. Response will include `body`. This is the default if you do not pass any specific media type.
 * - **`application/vnd.github.text+json`**: Returns a text only representation of the markdown body. Response will include `body_text`.
 * - **`application/vnd.github.html+json`**: Returns HTML rendered from the body's markdown. Response will include `body_html`.
 * - **`application/vnd.github.full+json`**: Returns raw, text, and HTML representations. Response will include `body`, `body_text`, and `body_html`.
 *
 * @tag issues
 * @path repos/:owner/:repo/issues/:issue_number
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function patchByOwnerAndRepoAndIssue_number(connection: IConnection<patchByOwnerAndRepoAndIssue_number.Headers>, owner: string, repo: string, issue_number: string, body: patchByOwnerAndRepoAndIssue_number.Input): Promise<patchByOwnerAndRepoAndIssue_number.Output>;
export declare namespace patchByOwnerAndRepoAndIssue_number {
    type Headers = IApiReposIssues.PatchHeader;
    type Input = body;
    type Output = issue;
    const METADATA: {
        readonly method: "PATCH";
        readonly path: "/repos/:owner/:repo/issues/:issue_number";
        readonly request: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: (owner: string, repo: string, issue_number: string) => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => issue;
    const simulate: (connection: IConnection<patchByOwnerAndRepoAndIssue_number.Headers>, owner: string, repo: string, issue_number: string, body: patchByOwnerAndRepoAndIssue_number.Input) => Output;
}
