import { IConnection } from "@nestia/fetcher";
import typia, { tags } from "typia";
import { IApiOrgsRulesets } from "../../../structures/IApiOrgsRulesets";
import { repository_minus_ruleset } from "../../../structures/repository_minus_ruleset";
import { body } from "../../../structures/body";
export * as rule_suites from "./rule_suites";
/**
 * Get all organization repository rulesets.
 * Get all the repository rulesets for an organization.
 *
 * @tag repos
 * @path orgs/:org/rulesets
 * @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 = IApiOrgsRulesets.GetHeader;
    type Output = repository_minus_ruleset[];
    const METADATA: {
        readonly method: "GET";
        readonly path: "/orgs/:org/rulesets";
        readonly request: null;
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: (org: string) => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => repository_minus_ruleset[];
    const simulate: (connection: IConnection<getByOrg.Headers>, org: string) => Output;
}
/**
 * Create an organization repository ruleset.
 * Create a repository ruleset for an organization.
 *
 * @param body Request body
 * @tag repos
 * @path orgs/:org/rulesets
 * @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 = IApiOrgsRulesets.PostHeader;
    type Input = body;
    type Output = repository_minus_ruleset;
    const METADATA: {
        readonly method: "POST";
        readonly path: "/orgs/:org/rulesets";
        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>) => repository_minus_ruleset;
    const simulate: (connection: IConnection<postByOrg.Headers>, org: string, body: postByOrg.Input) => Output;
}
/**
 * Get an organization repository ruleset.
 * Get a repository ruleset for an organization.
 *
 * **Note:** To prevent leaking sensitive information, the `bypass_actors` property is only returned if the user
 * making the API request has write access to the ruleset.
 *
 * @param ruleset_id The ID of the ruleset.
 * @tag repos
 * @path orgs/:org/rulesets/:ruleset_id
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function getByOrgAndRuleset_id(connection: IConnection<getByOrgAndRuleset_id.Headers>, org: string, ruleset_id: number & tags.Type<"int32">): Promise<getByOrgAndRuleset_id.Output>;
export declare namespace getByOrgAndRuleset_id {
    type Headers = IApiOrgsRulesets.GetHeader;
    type Output = repository_minus_ruleset;
    const METADATA: {
        readonly method: "GET";
        readonly path: "/orgs/:org/rulesets/:ruleset_id";
        readonly request: null;
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: (org: string, ruleset_id: number & tags.Type<"int32">) => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => repository_minus_ruleset;
    const simulate: (connection: IConnection<getByOrgAndRuleset_id.Headers>, org: string, ruleset_id: number & tags.Type<"int32">) => Output;
}
/**
 * Update an organization repository ruleset.
 * Update a ruleset for an organization.
 *
 * @param ruleset_id The ID of the ruleset.
 * @param body Request body
 * @tag repos
 * @path orgs/:org/rulesets/:ruleset_id
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function putByOrgAndRuleset_id(connection: IConnection<putByOrgAndRuleset_id.Headers>, org: string, ruleset_id: number & tags.Type<"int32">, body: putByOrgAndRuleset_id.Input): Promise<putByOrgAndRuleset_id.Output>;
export declare namespace putByOrgAndRuleset_id {
    type Headers = IApiOrgsRulesets.PutHeader;
    type Input = body;
    type Output = repository_minus_ruleset;
    const METADATA: {
        readonly method: "PUT";
        readonly path: "/orgs/:org/rulesets/:ruleset_id";
        readonly request: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: (org: string, ruleset_id: number & tags.Type<"int32">) => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => repository_minus_ruleset;
    const simulate: (connection: IConnection<putByOrgAndRuleset_id.Headers>, org: string, ruleset_id: number & tags.Type<"int32">, body: putByOrgAndRuleset_id.Input) => Output;
}
/**
 * Delete an organization repository ruleset.
 * Delete a ruleset for an organization.
 *
 * @param ruleset_id The ID of the ruleset.
 * @tag repos
 * @path orgs/:org/rulesets/:ruleset_id
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function eraseByOrgAndRuleset_id(connection: IConnection<eraseByOrgAndRuleset_id.Headers>, org: string, ruleset_id: number & tags.Type<"int32">): Promise<void>;
export declare namespace eraseByOrgAndRuleset_id {
    type Headers = IApiOrgsRulesets.DeleteHeader;
    const METADATA: {
        readonly method: "DELETE";
        readonly path: "/orgs/:org/rulesets/:ruleset_id";
        readonly request: null;
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: (org: string, ruleset_id: number & tags.Type<"int32">) => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => void;
    const simulate: (connection: IConnection<eraseByOrgAndRuleset_id.Headers>, org: string, ruleset_id: number & tags.Type<"int32">) => void;
}
