/// <reference types="node" />
import { TwirpContext, TwirpServer } from "twirp-ts";
import { CreateArtifactRequest, CreateArtifactResponse, FinalizeArtifactRequest, FinalizeArtifactResponse, ListArtifactsRequest, ListArtifactsResponse, GetSignedArtifactURLRequest, GetSignedArtifactURLResponse, DeleteArtifactRequest, DeleteArtifactResponse } from "./artifact";
interface Rpc {
    request(service: string, method: string, contentType: "application/json" | "application/protobuf", data: object | Uint8Array): Promise<object | Uint8Array>;
}
export interface ArtifactServiceClient {
    CreateArtifact(request: CreateArtifactRequest): Promise<CreateArtifactResponse>;
    FinalizeArtifact(request: FinalizeArtifactRequest): Promise<FinalizeArtifactResponse>;
    ListArtifacts(request: ListArtifactsRequest): Promise<ListArtifactsResponse>;
    GetSignedArtifactURL(request: GetSignedArtifactURLRequest): Promise<GetSignedArtifactURLResponse>;
    DeleteArtifact(request: DeleteArtifactRequest): Promise<DeleteArtifactResponse>;
}
export declare class ArtifactServiceClientJSON implements ArtifactServiceClient {
    private readonly rpc;
    constructor(rpc: Rpc);
    CreateArtifact(request: CreateArtifactRequest): Promise<CreateArtifactResponse>;
    FinalizeArtifact(request: FinalizeArtifactRequest): Promise<FinalizeArtifactResponse>;
    ListArtifacts(request: ListArtifactsRequest): Promise<ListArtifactsResponse>;
    GetSignedArtifactURL(request: GetSignedArtifactURLRequest): Promise<GetSignedArtifactURLResponse>;
    DeleteArtifact(request: DeleteArtifactRequest): Promise<DeleteArtifactResponse>;
}
export declare class ArtifactServiceClientProtobuf implements ArtifactServiceClient {
    private readonly rpc;
    constructor(rpc: Rpc);
    CreateArtifact(request: CreateArtifactRequest): Promise<CreateArtifactResponse>;
    FinalizeArtifact(request: FinalizeArtifactRequest): Promise<FinalizeArtifactResponse>;
    ListArtifacts(request: ListArtifactsRequest): Promise<ListArtifactsResponse>;
    GetSignedArtifactURL(request: GetSignedArtifactURLRequest): Promise<GetSignedArtifactURLResponse>;
    DeleteArtifact(request: DeleteArtifactRequest): Promise<DeleteArtifactResponse>;
}
export interface ArtifactServiceTwirp<T extends TwirpContext = TwirpContext> {
    CreateArtifact(ctx: T, request: CreateArtifactRequest): Promise<CreateArtifactResponse>;
    FinalizeArtifact(ctx: T, request: FinalizeArtifactRequest): Promise<FinalizeArtifactResponse>;
    ListArtifacts(ctx: T, request: ListArtifactsRequest): Promise<ListArtifactsResponse>;
    GetSignedArtifactURL(ctx: T, request: GetSignedArtifactURLRequest): Promise<GetSignedArtifactURLResponse>;
    DeleteArtifact(ctx: T, request: DeleteArtifactRequest): Promise<DeleteArtifactResponse>;
}
export declare enum ArtifactServiceMethod {
    CreateArtifact = "CreateArtifact",
    FinalizeArtifact = "FinalizeArtifact",
    ListArtifacts = "ListArtifacts",
    GetSignedArtifactURL = "GetSignedArtifactURL",
    DeleteArtifact = "DeleteArtifact"
}
export declare const ArtifactServiceMethodList: ArtifactServiceMethod[];
export declare function createArtifactServiceServer<T extends TwirpContext = TwirpContext>(service: ArtifactServiceTwirp<T>): TwirpServer<ArtifactServiceTwirp<TwirpContext<import("http").IncomingMessage, import("http").ServerResponse<import("http").IncomingMessage>>>, T>;
export {};
