import { IConnection } from "@nestia/fetcher";
import typia from "typia";
import { IApiReposEnvironmentsDeploymentBranchPolicies } from "../../../../structures/IApiReposEnvironmentsDeploymentBranchPolicies";
import { response } from "../../../../structures/response";
import { deployment_minus_branch_minus_policy_minus_name_minus_pattern_minus_with_minus_type } from "../../../../structures/deployment_minus_branch_minus_policy_minus_name_minus_pattern_minus_with_minus_type";
import { deployment_minus_branch_minus_policy } from "../../../../structures/deployment_minus_branch_minus_policy";
import { deployment_minus_branch_minus_policy_minus_name_minus_pattern } from "../../../../structures/deployment_minus_branch_minus_policy_minus_name_minus_pattern";
/**
 * List deployment branch policies.
 * Lists the deployment branch policies for an environment.
 *
 * Anyone with read access to the repository can use this endpoint.
 *
 * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository.
 *
 * @tag repos
 * @path repos/:owner/:repo/environments/:environment_name/deployment-branch-policies
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function getByOwnerAndRepoAndEnvironment_name(connection: IConnection<getByOwnerAndRepoAndEnvironment_name.Headers>, owner: string, repo: string, environment_name: string): Promise<getByOwnerAndRepoAndEnvironment_name.Output>;
export declare namespace getByOwnerAndRepoAndEnvironment_name {
    type Headers = IApiReposEnvironmentsDeploymentBranchPolicies.GetHeader;
    type Output = response;
    const METADATA: {
        readonly method: "GET";
        readonly path: "/repos/:owner/:repo/environments/:environment_name/deployment-branch-policies";
        readonly request: null;
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: (owner: string, repo: string, environment_name: string) => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => response;
    const simulate: (connection: IConnection<getByOwnerAndRepoAndEnvironment_name.Headers>, owner: string, repo: string, environment_name: string) => Output;
}
/**
 * Create a deployment branch policy.
 * Creates a deployment branch or tag policy for an environment.
 *
 * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.
 *
 * @tag repos
 * @path repos/:owner/:repo/environments/:environment_name/deployment-branch-policies
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function postByOwnerAndRepoAndEnvironment_name(connection: IConnection<postByOwnerAndRepoAndEnvironment_name.Headers>, owner: string, repo: string, environment_name: string, body: postByOwnerAndRepoAndEnvironment_name.Input): Promise<postByOwnerAndRepoAndEnvironment_name.Output>;
export declare namespace postByOwnerAndRepoAndEnvironment_name {
    type Headers = IApiReposEnvironmentsDeploymentBranchPolicies.PostHeader;
    type Input = deployment_minus_branch_minus_policy_minus_name_minus_pattern_minus_with_minus_type;
    type Output = deployment_minus_branch_minus_policy;
    const METADATA: {
        readonly method: "POST";
        readonly path: "/repos/:owner/:repo/environments/:environment_name/deployment-branch-policies";
        readonly request: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: (owner: string, repo: string, environment_name: string) => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => deployment_minus_branch_minus_policy;
    const simulate: (connection: IConnection<postByOwnerAndRepoAndEnvironment_name.Headers>, owner: string, repo: string, environment_name: string, body: postByOwnerAndRepoAndEnvironment_name.Input) => Output;
}
/**
 * Get a deployment branch policy.
 * Gets a deployment branch or tag policy for an environment.
 *
 * Anyone with read access to the repository can use this endpoint.
 *
 * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository.
 *
 * @tag repos
 * @path repos/:owner/:repo/environments/:environment_name/deployment-branch-policies/:branch_policy_id
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function getByOwnerAndRepoAndEnvironment_nameAndBranch_policy_id(connection: IConnection<getByOwnerAndRepoAndEnvironment_nameAndBranch_policy_id.Headers>, owner: string, repo: string, environment_name: string, branch_policy_id: string): Promise<getByOwnerAndRepoAndEnvironment_nameAndBranch_policy_id.Output>;
export declare namespace getByOwnerAndRepoAndEnvironment_nameAndBranch_policy_id {
    type Headers = IApiReposEnvironmentsDeploymentBranchPolicies.GetHeader;
    type Output = deployment_minus_branch_minus_policy;
    const METADATA: {
        readonly method: "GET";
        readonly path: "/repos/:owner/:repo/environments/:environment_name/deployment-branch-policies/:branch_policy_id";
        readonly request: null;
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: (owner: string, repo: string, environment_name: string, branch_policy_id: string) => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => deployment_minus_branch_minus_policy;
    const simulate: (connection: IConnection<getByOwnerAndRepoAndEnvironment_nameAndBranch_policy_id.Headers>, owner: string, repo: string, environment_name: string, branch_policy_id: string) => Output;
}
/**
 * Update a deployment branch policy.
 * Updates a deployment branch or tag policy for an environment.
 *
 * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.
 *
 * @tag repos
 * @path repos/:owner/:repo/environments/:environment_name/deployment-branch-policies/:branch_policy_id
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function putByOwnerAndRepoAndEnvironment_nameAndBranch_policy_id(connection: IConnection<putByOwnerAndRepoAndEnvironment_nameAndBranch_policy_id.Headers>, owner: string, repo: string, environment_name: string, branch_policy_id: string, body: putByOwnerAndRepoAndEnvironment_nameAndBranch_policy_id.Input): Promise<putByOwnerAndRepoAndEnvironment_nameAndBranch_policy_id.Output>;
export declare namespace putByOwnerAndRepoAndEnvironment_nameAndBranch_policy_id {
    type Headers = IApiReposEnvironmentsDeploymentBranchPolicies.PutHeader;
    type Input = deployment_minus_branch_minus_policy_minus_name_minus_pattern;
    type Output = deployment_minus_branch_minus_policy;
    const METADATA: {
        readonly method: "PUT";
        readonly path: "/repos/:owner/:repo/environments/:environment_name/deployment-branch-policies/:branch_policy_id";
        readonly request: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: (owner: string, repo: string, environment_name: string, branch_policy_id: string) => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => deployment_minus_branch_minus_policy;
    const simulate: (connection: IConnection<putByOwnerAndRepoAndEnvironment_nameAndBranch_policy_id.Headers>, owner: string, repo: string, environment_name: string, branch_policy_id: string, body: putByOwnerAndRepoAndEnvironment_nameAndBranch_policy_id.Input) => Output;
}
/**
 * Delete a deployment branch policy.
 * Deletes a deployment branch or tag policy for an environment.
 *
 * OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.
 *
 * @tag repos
 * @path repos/:owner/:repo/environments/:environment_name/deployment-branch-policies/:branch_policy_id
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function eraseByOwnerAndRepoAndEnvironment_nameAndBranch_policy_id(connection: IConnection<eraseByOwnerAndRepoAndEnvironment_nameAndBranch_policy_id.Headers>, owner: string, repo: string, environment_name: string, branch_policy_id: string): Promise<void>;
export declare namespace eraseByOwnerAndRepoAndEnvironment_nameAndBranch_policy_id {
    type Headers = IApiReposEnvironmentsDeploymentBranchPolicies.DeleteHeader;
    const METADATA: {
        readonly method: "DELETE";
        readonly path: "/repos/:owner/:repo/environments/:environment_name/deployment-branch-policies/:branch_policy_id";
        readonly request: null;
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: (owner: string, repo: string, environment_name: string, branch_policy_id: string) => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => void;
    const simulate: (connection: IConnection<eraseByOwnerAndRepoAndEnvironment_nameAndBranch_policy_id.Headers>, owner: string, repo: string, environment_name: string, branch_policy_id: string) => void;
}
