import { IConnection } from "@nestia/fetcher";
import typia from "typia";
import { IApiUserInstallationsRepositories } from "../../../../structures/IApiUserInstallationsRepositories";
import { response } from "../../../../structures/response";
/**
 * List repositories accessible to the user access token.
 * List repositories that the authenticated user has explicit permission (`:read`, `:write`, or `:admin`) to access for an installation.
 *
 * The authenticated user has explicit permission to access repositories they own, repositories where they are a collaborator, and repositories that they can access through an organization membership.
 *
 * The access the user has to each repository is included in the hash under the `permissions` key.
 *
 * @tag apps
 * @path user/installations/:installation_id/repositories
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function getByInstallation_id(connection: IConnection<getByInstallation_id.Headers>, installation_id: string): Promise<getByInstallation_id.Output>;
export declare namespace getByInstallation_id {
    type Headers = IApiUserInstallationsRepositories.GetHeader;
    type Output = response;
    const METADATA: {
        readonly method: "GET";
        readonly path: "/user/installations/:installation_id/repositories";
        readonly request: null;
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: (installation_id: string) => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => response;
    const simulate: (connection: IConnection<getByInstallation_id.Headers>, installation_id: string) => Output;
}
/**
 * Add a repository to an app installation.
 * Add a single repository to an installation. The authenticated user must have admin access to the repository.
 *
 * This endpoint only works for PATs (classic) with the `repo` scope.
 *
 * @tag apps
 * @path user/installations/:installation_id/repositories/:repository_id
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function putByInstallation_idAndRepository_id(connection: IConnection<putByInstallation_idAndRepository_id.Headers>, installation_id: string, repository_id: string): Promise<void>;
export declare namespace putByInstallation_idAndRepository_id {
    type Headers = IApiUserInstallationsRepositories.PutHeader;
    const METADATA: {
        readonly method: "PUT";
        readonly path: "/user/installations/:installation_id/repositories/:repository_id";
        readonly request: null;
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: (installation_id: string, repository_id: string) => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => void;
    const simulate: (connection: IConnection<putByInstallation_idAndRepository_id.Headers>, installation_id: string, repository_id: string) => void;
}
/**
 * Remove a repository from an app installation.
 * Remove a single repository from an installation. The authenticated user must have admin access to the repository. The installation must have the `repository_selection` of `selected`.
 *
 * This endpoint only works for PATs (classic) with the `repo` scope.
 *
 * @tag apps
 * @path user/installations/:installation_id/repositories/:repository_id
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function eraseByInstallation_idAndRepository_id(connection: IConnection<eraseByInstallation_idAndRepository_id.Headers>, installation_id: string, repository_id: string): Promise<void>;
export declare namespace eraseByInstallation_idAndRepository_id {
    type Headers = IApiUserInstallationsRepositories.DeleteHeader;
    const METADATA: {
        readonly method: "DELETE";
        readonly path: "/user/installations/:installation_id/repositories/:repository_id";
        readonly request: null;
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: (installation_id: string, repository_id: string) => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => void;
    const simulate: (connection: IConnection<eraseByInstallation_idAndRepository_id.Headers>, installation_id: string, repository_id: string) => void;
}
