import { IConnection } from "@nestia/fetcher";
import typia from "typia";
import { IApiReposBranchesProtectionRestrictions } from "../../../../../structures/IApiReposBranchesProtectionRestrictions";
import { branch_minus_restriction_minus_policy } from "../../../../../structures/branch_minus_restriction_minus_policy";
export * as apps from "./apps";
export * as teams from "./teams";
export * as users from "./users";
/**
 * Get access restrictions.
 * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.
 *
 * Lists who has access to this protected branch.
 *
 * > [!NOTE]
 * > Users, apps, and teams `restrictions` are only available for organization-owned repositories.
 *
 * @tag repos
 * @path repos/:owner/:repo/branches/:branch/protection/restrictions
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function getByOwnerAndRepoAndBranch(connection: IConnection<getByOwnerAndRepoAndBranch.Headers>, owner: string, repo: string, branch: string): Promise<getByOwnerAndRepoAndBranch.Output>;
export declare namespace getByOwnerAndRepoAndBranch {
    type Headers = IApiReposBranchesProtectionRestrictions.GetHeader;
    type Output = branch_minus_restriction_minus_policy;
    const METADATA: {
        readonly method: "GET";
        readonly path: "/repos/:owner/:repo/branches/:branch/protection/restrictions";
        readonly request: null;
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: (owner: string, repo: string, branch: string) => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => branch_minus_restriction_minus_policy;
    const simulate: (connection: IConnection<getByOwnerAndRepoAndBranch.Headers>, owner: string, repo: string, branch: string) => Output;
}
/**
 * Delete access restrictions.
 * Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see [GitHub's products](https://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.
 *
 * Disables the ability to restrict who can push to this branch.
 *
 * @tag repos
 * @path repos/:owner/:repo/branches/:branch/protection/restrictions
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function eraseByOwnerAndRepoAndBranch(connection: IConnection<eraseByOwnerAndRepoAndBranch.Headers>, owner: string, repo: string, branch: string): Promise<void>;
export declare namespace eraseByOwnerAndRepoAndBranch {
    type Headers = IApiReposBranchesProtectionRestrictions.DeleteHeader;
    const METADATA: {
        readonly method: "DELETE";
        readonly path: "/repos/:owner/:repo/branches/:branch/protection/restrictions";
        readonly request: null;
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: (owner: string, repo: string, branch: string) => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => void;
    const simulate: (connection: IConnection<eraseByOwnerAndRepoAndBranch.Headers>, owner: string, repo: string, branch: string) => void;
}
