import { IConnection } from "@nestia/fetcher";
import typia from "typia";
import { IApiOrgsInvitations } from "../../../structures/IApiOrgsInvitations";
import { organization_minus_invitation } from "../../../structures/organization_minus_invitation";
import { body } from "../../../structures/body";
export * as teams from "./teams";
/**
 * List pending organization invitations.
 * The return hash contains a `role` field which refers to the Organization
 * Invitation role and will be one of the following values: `direct_member`, `admin`,
 * `billing_manager`, or `hiring_manager`. If the invitee is not a GitHub
 * member, the `login` field in the return hash will be `null`.
 *
 * @tag orgs
 * @path orgs/:org/invitations
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function getByOrg(connection: IConnection<getByOrg.Headers>, org: string, query: getByOrg.Query): Promise<getByOrg.Output>;
export declare namespace getByOrg {
    type Headers = IApiOrgsInvitations.GetHeader;
    type Query = IApiOrgsInvitations.GetQuery;
    type Output = organization_minus_invitation[];
    const METADATA: {
        readonly method: "GET";
        readonly path: "/orgs/:org/invitations";
        readonly request: null;
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: (org: string, query: getByOrg.Query) => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => organization_minus_invitation[];
    const simulate: (connection: IConnection<getByOrg.Headers>, org: string, query: getByOrg.Query) => Output;
}
/**
 * Create an organization invitation.
 * Invite people to an organization by using their GitHub user ID or their email address. In order to create invitations in an organization, the authenticated user must be an organization owner.
 *
 * 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)."
 *
 * @tag orgs
 * @path orgs/:org/invitations
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function postByOrg(connection: IConnection<postByOrg.Headers>, org: string, body: postByOrg.Input): Promise<postByOrg.Output>;
export declare namespace postByOrg {
    type Headers = IApiOrgsInvitations.PostHeader;
    type Input = body;
    type Output = organization_minus_invitation;
    const METADATA: {
        readonly method: "POST";
        readonly path: "/orgs/:org/invitations";
        readonly request: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: (org: string) => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => organization_minus_invitation;
    const simulate: (connection: IConnection<postByOrg.Headers>, org: string, body: postByOrg.Input) => Output;
}
/**
 * Cancel an organization invitation. In order to cancel an organization invitation, the authenticated user must be an organization owner.
 *
 * This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications).
 *
 * @tag orgs
 * @path orgs/:org/invitations/:invitation_id
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function eraseByOrgAndInvitation_id(connection: IConnection<eraseByOrgAndInvitation_id.Headers>, org: string, invitation_id: string): Promise<void>;
export declare namespace eraseByOrgAndInvitation_id {
    type Headers = IApiOrgsInvitations.DeleteHeader;
    const METADATA: {
        readonly method: "DELETE";
        readonly path: "/orgs/:org/invitations/:invitation_id";
        readonly request: null;
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: (org: string, invitation_id: string) => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => void;
    const simulate: (connection: IConnection<eraseByOrgAndInvitation_id.Headers>, org: string, invitation_id: string) => void;
}
