import { IConnection } from "@nestia/fetcher";
import typia from "typia";
import { IApiReposActionsArtifacts } from "../../../../structures/IApiReposActionsArtifacts";
import { response } from "../../../../structures/response";
import { artifact } from "../../../../structures/artifact";
/**
 * List artifacts for a repository.
 * Lists all artifacts for a repository.
 *
 * 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 actions
 * @path repos/:owner/:repo/actions/artifacts
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function getByOwnerAndRepo(connection: IConnection<getByOwnerAndRepo.Headers>, owner: string, repo: string): Promise<getByOwnerAndRepo.Output>;
export declare namespace getByOwnerAndRepo {
    type Headers = IApiReposActionsArtifacts.GetHeader;
    type Output = response;
    const METADATA: {
        readonly method: "GET";
        readonly path: "/repos/:owner/:repo/actions/artifacts";
        readonly request: null;
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: (owner: string, repo: string) => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => response;
    const simulate: (connection: IConnection<getByOwnerAndRepo.Headers>, owner: string, repo: string) => Output;
}
/**
 * Get an artifact.
 * Gets a specific artifact for a workflow run.
 *
 * Anyone with read access to the repository can use this endpoint.
 *
 * If the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.
 *
 * @tag actions
 * @path repos/:owner/:repo/actions/artifacts/:artifact_id
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function getByOwnerAndRepoAndArtifact_id(connection: IConnection<getByOwnerAndRepoAndArtifact_id.Headers>, owner: string, repo: string, artifact_id: string): Promise<getByOwnerAndRepoAndArtifact_id.Output>;
export declare namespace getByOwnerAndRepoAndArtifact_id {
    type Headers = IApiReposActionsArtifacts.GetHeader;
    type Output = artifact;
    const METADATA: {
        readonly method: "GET";
        readonly path: "/repos/:owner/:repo/actions/artifacts/:artifact_id";
        readonly request: null;
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: (owner: string, repo: string, artifact_id: string) => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => artifact;
    const simulate: (connection: IConnection<getByOwnerAndRepoAndArtifact_id.Headers>, owner: string, repo: string, artifact_id: string) => Output;
}
/**
 * Delete an artifact.
 * Deletes an artifact for a workflow run.
 * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.
 *
 * @tag actions
 * @path repos/:owner/:repo/actions/artifacts/:artifact_id
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function eraseByOwnerAndRepoAndArtifact_id(connection: IConnection<eraseByOwnerAndRepoAndArtifact_id.Headers>, owner: string, repo: string, artifact_id: string): Promise<void>;
export declare namespace eraseByOwnerAndRepoAndArtifact_id {
    type Headers = IApiReposActionsArtifacts.DeleteHeader;
    const METADATA: {
        readonly method: "DELETE";
        readonly path: "/repos/:owner/:repo/actions/artifacts/:artifact_id";
        readonly request: null;
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: (owner: string, repo: string, artifact_id: string) => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => void;
    const simulate: (connection: IConnection<eraseByOwnerAndRepoAndArtifact_id.Headers>, owner: string, repo: string, artifact_id: string) => void;
}
/**
 * Download an artifact.
 * Gets a redirect URL to download an archive for a repository. This URL expires after 1 minute. Look for `Location:` in
 * the response header to find the URL for the download. The `:archive_format` must be `zip`.
 *
 * OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.
 *
 * @tag actions
 * @path repos/:owner/:repo/actions/artifacts/:artifact_id/:archive_format
 * @nestia Generated by Nestia - https://github.com/samchon/nestia
 */
export declare function getByOwnerAndRepoAndArtifact_idAndArchive_format(connection: IConnection<getByOwnerAndRepoAndArtifact_idAndArchive_format.Headers>, owner: string, repo: string, artifact_id: string, archive_format: string): Promise<void>;
export declare namespace getByOwnerAndRepoAndArtifact_idAndArchive_format {
    type Headers = IApiReposActionsArtifacts.GetHeader;
    const METADATA: {
        readonly method: "GET";
        readonly path: "/repos/:owner/:repo/actions/artifacts/:artifact_id/:archive_format";
        readonly request: null;
        readonly response: {
            readonly type: "application/json";
            readonly encrypted: false;
        };
    };
    const path: (owner: string, repo: string, artifact_id: string, archive_format: string) => string;
    const random: (g?: Partial<typia.IRandomGenerator>) => void;
    const simulate: (connection: IConnection<getByOwnerAndRepoAndArtifact_idAndArchive_format.Headers>, owner: string, repo: string, artifact_id: string, archive_format: string) => void;
}
