import { IConnection } from "@nestia/fetcher";
import typia from "typia";
import { IApiReposIssuesLabels } from "../../../../structures/IApiReposIssuesLabels";
import { label } from "../../../../structures/label";
import { body } from "../../../../structures/body";
/**
 * List labels for an issue.
 * Lists all labels for an issue.
 *
 * @tag issues
 * @path repos/:owner/:repo/issues/:issue_number/labels
 * @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 = IApiReposIssuesLabels.GetHeader;
    type Output = label[];
    const METADATA: {
        readonly method: "GET";
        readonly path: "/repos/:owner/:repo/issues/:issue_number/labels";
        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>) => label[];
    const simulate: (connection: IConnection<getByOwnerAndRepoAndIssue_number.Headers>, owner: string, repo: string, issue_number: string) => Output;
}
/**
 * Add labels to an issue.
 * Adds labels to an issue. If you provide an empty array of labels, all labels are removed from the issue.
 *
 * @tag issues
 * @path repos/:owner/:repo/issues/:issue_number/labels
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function postByOwnerAndRepoAndIssue_number(connection: IConnection<postByOwnerAndRepoAndIssue_number.Headers>, owner: string, repo: string, issue_number: string, body: postByOwnerAndRepoAndIssue_number.Input): Promise<postByOwnerAndRepoAndIssue_number.Output>;
export declare namespace postByOwnerAndRepoAndIssue_number {
    type Headers = IApiReposIssuesLabels.PostHeader;
    type Input = body;
    type Output = label[];
    const METADATA: {
        readonly method: "POST";
        readonly path: "/repos/:owner/:repo/issues/:issue_number/labels";
        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>) => label[];
    const simulate: (connection: IConnection<postByOwnerAndRepoAndIssue_number.Headers>, owner: string, repo: string, issue_number: string, body: postByOwnerAndRepoAndIssue_number.Input) => Output;
}
/**
 * Set labels for an issue.
 * Removes any previous labels and sets the new labels for an issue.
 *
 * @tag issues
 * @path repos/:owner/:repo/issues/:issue_number/labels
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function putByOwnerAndRepoAndIssue_number(connection: IConnection<putByOwnerAndRepoAndIssue_number.Headers>, owner: string, repo: string, issue_number: string, body: putByOwnerAndRepoAndIssue_number.Input): Promise<putByOwnerAndRepoAndIssue_number.Output>;
export declare namespace putByOwnerAndRepoAndIssue_number {
    type Headers = IApiReposIssuesLabels.PutHeader;
    type Input = body;
    type Output = label[];
    const METADATA: {
        readonly method: "PUT";
        readonly path: "/repos/:owner/:repo/issues/:issue_number/labels";
        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>) => label[];
    const simulate: (connection: IConnection<putByOwnerAndRepoAndIssue_number.Headers>, owner: string, repo: string, issue_number: string, body: putByOwnerAndRepoAndIssue_number.Input) => Output;
}
/**
 * Remove all labels from an issue.
 * Removes all labels from an issue.
 *
 * @tag issues
 * @path repos/:owner/:repo/issues/:issue_number/labels
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function eraseByOwnerAndRepoAndIssue_number(connection: IConnection<eraseByOwnerAndRepoAndIssue_number.Headers>, owner: string, repo: string, issue_number: string): Promise<void>;
export declare namespace eraseByOwnerAndRepoAndIssue_number {
    type Headers = IApiReposIssuesLabels.DeleteHeader;
    const METADATA: {
        readonly method: "DELETE";
        readonly path: "/repos/:owner/:repo/issues/:issue_number/labels";
        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>) => void;
    const simulate: (connection: IConnection<eraseByOwnerAndRepoAndIssue_number.Headers>, owner: string, repo: string, issue_number: string) => void;
}
/**
 * Remove a label from an issue.
 * Removes the specified label from the issue, and returns the remaining labels on the issue. This endpoint returns a `404 Not Found` status if the label does not exist.
 *
 * @tag issues
 * @path repos/:owner/:repo/issues/:issue_number/labels/:name
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function eraseByOwnerAndRepoAndIssue_numberAndName(connection: IConnection<eraseByOwnerAndRepoAndIssue_numberAndName.Headers>, owner: string, repo: string, issue_number: string, name: string): Promise<eraseByOwnerAndRepoAndIssue_numberAndName.Output>;
export declare namespace eraseByOwnerAndRepoAndIssue_numberAndName {
    type Headers = IApiReposIssuesLabels.DeleteHeader;
    type Output = label[];
    const METADATA: {
        readonly method: "DELETE";
        readonly path: "/repos/:owner/:repo/issues/:issue_number/labels/:name";
        readonly request: null;
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: (owner: string, repo: string, issue_number: string, name: string) => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => label[];
    const simulate: (connection: IConnection<eraseByOwnerAndRepoAndIssue_numberAndName.Headers>, owner: string, repo: string, issue_number: string, name: string) => Output;
}
