import { IConnection } from "@nestia/fetcher";
import typia from "typia";
import { IApiUserPackagesVersions } from "../../../../structures/IApiUserPackagesVersions";
import { package_minus_version } from "../../../../structures/package_minus_version";
export * as restore from "./restore";
/**
 * List package versions for a package owned by the authenticated user.
 * Lists package versions for a package owned by the authenticated user.
 *
 * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)."
 *
 * @tag packages
 * @path user/packages/:package_type/:package_name/versions
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function getByPackage_typeAndPackage_name(connection: IConnection<getByPackage_typeAndPackage_name.Headers>, package_type: string, package_name: string, query: getByPackage_typeAndPackage_name.Query): Promise<getByPackage_typeAndPackage_name.Output>;
export declare namespace getByPackage_typeAndPackage_name {
    type Headers = IApiUserPackagesVersions.GetHeader;
    type Query = IApiUserPackagesVersions.GetQuery;
    type Output = package_minus_version[];
    const METADATA: {
        readonly method: "GET";
        readonly path: "/user/packages/:package_type/:package_name/versions";
        readonly request: null;
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: (package_type: string, package_name: string, query: getByPackage_typeAndPackage_name.Query) => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => package_minus_version[];
    const simulate: (connection: IConnection<getByPackage_typeAndPackage_name.Headers>, package_type: string, package_name: string, query: getByPackage_typeAndPackage_name.Query) => Output;
}
/**
 * Get a package version for the authenticated user.
 * Gets a specific package version for a package owned by the authenticated user.
 *
 * OAuth app tokens and personal access tokens (classic) need the `read:packages` scope to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)."
 *
 * @tag packages
 * @path user/packages/:package_type/:package_name/versions/:package_version_id
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function getByPackage_typeAndPackage_nameAndPackage_version_id(connection: IConnection<getByPackage_typeAndPackage_nameAndPackage_version_id.Headers>, package_type: string, package_name: string, package_version_id: string): Promise<getByPackage_typeAndPackage_nameAndPackage_version_id.Output>;
export declare namespace getByPackage_typeAndPackage_nameAndPackage_version_id {
    type Headers = IApiUserPackagesVersions.GetHeader;
    type Output = package_minus_version;
    const METADATA: {
        readonly method: "GET";
        readonly path: "/user/packages/:package_type/:package_name/versions/:package_version_id";
        readonly request: null;
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: (package_type: string, package_name: string, package_version_id: string) => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => package_minus_version;
    const simulate: (connection: IConnection<getByPackage_typeAndPackage_nameAndPackage_version_id.Headers>, package_type: string, package_name: string, package_version_id: string) => Output;
}
/**
 * Delete a package version for the authenticated user.
 * Deletes a specific package version for a package owned by the authenticated user.  If the package is public and the package version has more than 5,000 downloads, you cannot delete the package version. In this scenario, contact GitHub support for further assistance.
 *
 * The authenticated user must have admin permissions in the organization to use this endpoint.
 *
 * OAuth app tokens and personal access tokens (classic) need the `read:packages` and `delete:packages` scopes to use this endpoint. If the `package_type` belongs to a GitHub Packages registry that only supports repository-scoped permissions, the `repo` scope is also required. For the list of these registries, see "[About permissions for GitHub Packages](https://docs.github.com/packages/learn-github-packages/about-permissions-for-github-packages#permissions-for-repository-scoped-packages)."
 *
 * @tag packages
 * @path user/packages/:package_type/:package_name/versions/:package_version_id
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function eraseByPackage_typeAndPackage_nameAndPackage_version_id(connection: IConnection<eraseByPackage_typeAndPackage_nameAndPackage_version_id.Headers>, package_type: string, package_name: string, package_version_id: string): Promise<void>;
export declare namespace eraseByPackage_typeAndPackage_nameAndPackage_version_id {
    type Headers = IApiUserPackagesVersions.DeleteHeader;
    const METADATA: {
        readonly method: "DELETE";
        readonly path: "/user/packages/:package_type/:package_name/versions/:package_version_id";
        readonly request: null;
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: (package_type: string, package_name: string, package_version_id: string) => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => void;
    const simulate: (connection: IConnection<eraseByPackage_typeAndPackage_nameAndPackage_version_id.Headers>, package_type: string, package_name: string, package_version_id: string) => void;
}
