import { IConnection } from "@nestia/fetcher";
import typia from "typia";
import { IApiOrgsInteractionLimits } from "../../../structures/IApiOrgsInteractionLimits";
import { response } from "../../../structures/response";
import { interaction_minus_limit } from "../../../structures/interaction_minus_limit";
import { interaction_minus_limit_minus_response } from "../../../structures/interaction_minus_limit_minus_response";
/**
 * Get interaction restrictions for an organization.
 * Shows which type of GitHub user can interact with this organization and when the restriction expires. If there is no restrictions, you will see an empty response.
 *
 * @tag interactions
 * @path orgs/:org/interaction-limits
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function getByOrg(connection: IConnection<getByOrg.Headers>, org: string): Promise<getByOrg.Output>;
export declare namespace getByOrg {
    type Headers = IApiOrgsInteractionLimits.GetHeader;
    type Output = response;
    const METADATA: {
        readonly method: "GET";
        readonly path: "/orgs/:org/interaction-limits";
        readonly request: null;
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: (org: string) => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => response;
    const simulate: (connection: IConnection<getByOrg.Headers>, org: string) => Output;
}
/**
 * Set interaction restrictions for an organization.
 * Temporarily restricts interactions to a certain type of GitHub user in any public repository in the given organization. You must be an organization owner to set these restrictions. Setting the interaction limit at the organization level will overwrite any interaction limits that are set for individual repositories owned by the organization.
 *
 * @tag interactions
 * @path orgs/:org/interaction-limits
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function putByOrg(connection: IConnection<putByOrg.Headers>, org: string, body: putByOrg.Input): Promise<putByOrg.Output>;
export declare namespace putByOrg {
    type Headers = IApiOrgsInteractionLimits.PutHeader;
    type Input = interaction_minus_limit;
    type Output = interaction_minus_limit_minus_response;
    const METADATA: {
        readonly method: "PUT";
        readonly path: "/orgs/:org/interaction-limits";
        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>) => interaction_minus_limit_minus_response;
    const simulate: (connection: IConnection<putByOrg.Headers>, org: string, body: putByOrg.Input) => Output;
}
/**
 * Remove interaction restrictions for an organization.
 * Removes all interaction restrictions from public repositories in the given organization. You must be an organization owner to remove restrictions.
 *
 * @tag interactions
 * @path orgs/:org/interaction-limits
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function eraseByOrg(connection: IConnection<eraseByOrg.Headers>, org: string): Promise<void>;
export declare namespace eraseByOrg {
    type Headers = IApiOrgsInteractionLimits.DeleteHeader;
    const METADATA: {
        readonly method: "DELETE";
        readonly path: "/orgs/:org/interaction-limits";
        readonly request: null;
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: (org: string) => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => void;
    const simulate: (connection: IConnection<eraseByOrg.Headers>, org: string) => void;
}
