import type { GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
import type { File, FileJson } from "./file_pb";
import type { Manifest, ManifestJson } from "./manifest_pb";
import type { Message } from "@bufbuild/protobuf";
/**
 * Describes the file mochabugapis/adapt/plugins/v1/plugins.proto.
 */
export declare const file_mochabugapis_adapt_plugins_v1_plugins: GenFile;
/**
 * UploadPluginRequest represents a single request in the CreatePlugin streaming
 * RPC. The client sends a series of UploadPluginRequest messages containing
 * plugin data, starting with a manifest and followed by one or more files.
 *
 * @generated from message mochabugapis.adapt.plugins.v1.UploadPluginRequest
 */
export type UploadPluginRequest = Message<"mochabugapis.adapt.plugins.v1.UploadPluginRequest"> & {
    /**
     * 'data' is a oneof field that holds either a manifest or a file for the
     * plugin.
     *
     * @generated from oneof mochabugapis.adapt.plugins.v1.UploadPluginRequest.data
     */
    data: {
        /**
         * 'start' must be the first message of the stream
         *
         * @generated from field: mochabugapis.adapt.plugins.v1.StartUpload start = 1;
         */
        value: StartUpload;
        case: "start";
    } | {
        /**
         * 'file' is a File contained within the plugin.
         * It follows the manifest in the stream.
         *
         * @generated from field: mochabugapis.adapt.plugins.v1.File file = 2;
         */
        value: File;
        case: "file";
    } | {
        case: undefined;
        value?: undefined;
    };
};
/**
 * UploadPluginRequest represents a single request in the CreatePlugin streaming
 * RPC. The client sends a series of UploadPluginRequest messages containing
 * plugin data, starting with a manifest and followed by one or more files.
 *
 * @generated from message mochabugapis.adapt.plugins.v1.UploadPluginRequest
 */
export type UploadPluginRequestJson = {
    /**
     * 'start' must be the first message of the stream
     *
     * @generated from field: mochabugapis.adapt.plugins.v1.StartUpload start = 1;
     */
    start?: StartUploadJson;
    /**
     * 'file' is a File contained within the plugin.
     * It follows the manifest in the stream.
     *
     * @generated from field: mochabugapis.adapt.plugins.v1.File file = 2;
     */
    file?: FileJson;
};
/**
 * Describes the message mochabugapis.adapt.plugins.v1.UploadPluginRequest.
 * Use `create(UploadPluginRequestSchema)` to create a new message.
 */
export declare const UploadPluginRequestSchema: GenMessage<UploadPluginRequest, {
    jsonType: UploadPluginRequestJson;
}>;
/**
 * The start message containing information about the files to be uploaded.
 *
 * @generated from message mochabugapis.adapt.plugins.v1.StartUpload
 */
export type StartUpload = Message<"mochabugapis.adapt.plugins.v1.StartUpload"> & {
    /**
     * 'manifest' is the Manifest describing the plugin.
     * It must be the first message in the stream.
     *
     * @generated from field: mochabugapis.adapt.plugins.v1.Manifest manifest = 1;
     */
    manifest?: Manifest | undefined;
    /**
     * The 'cdn_prefix' path prefix for the plugin files.
     *
     * @generated from field: optional string cdn_prefix = 2;
     */
    cdnPrefix?: string | undefined;
    /**
     * The 'assets_prefix' path prefix for the plugin files.
     *
     * @generated from field: optional string assets_prefix = 3;
     */
    assetsPrefix?: string | undefined;
    /**
     * The executor file path
     *
     * @generated from field: string executor_path = 4;
     */
    executorPath: string;
    /**
     * Any additional wasm modules needed for the executor
     *
     * @generated from field: repeated string executor_wasm = 5;
     */
    executorWasm: string[];
    /**
     * The configurator file path
     *
     * @generated from field: optional string configurator_path = 6;
     */
    configuratorPath?: string | undefined;
    /**
     * Any additional wasm modules needed for the executor
     *
     * @generated from field: repeated string configurator_wasm = 7;
     */
    configuratorWasm: string[];
    /**
     * Whether we should copy-over previous system settings (if any) to the new
     * plugin.
     *
     * @generated from field: optional bool copy_system_settings = 8;
     */
    copySystemSettings?: boolean | undefined;
};
/**
 * The start message containing information about the files to be uploaded.
 *
 * @generated from message mochabugapis.adapt.plugins.v1.StartUpload
 */
export type StartUploadJson = {
    /**
     * 'manifest' is the Manifest describing the plugin.
     * It must be the first message in the stream.
     *
     * @generated from field: mochabugapis.adapt.plugins.v1.Manifest manifest = 1;
     */
    manifest?: ManifestJson;
    /**
     * The 'cdn_prefix' path prefix for the plugin files.
     *
     * @generated from field: optional string cdn_prefix = 2;
     */
    cdnPrefix?: string;
    /**
     * The 'assets_prefix' path prefix for the plugin files.
     *
     * @generated from field: optional string assets_prefix = 3;
     */
    assetsPrefix?: string;
    /**
     * The executor file path
     *
     * @generated from field: string executor_path = 4;
     */
    executorPath?: string;
    /**
     * Any additional wasm modules needed for the executor
     *
     * @generated from field: repeated string executor_wasm = 5;
     */
    executorWasm?: string[];
    /**
     * The configurator file path
     *
     * @generated from field: optional string configurator_path = 6;
     */
    configuratorPath?: string;
    /**
     * Any additional wasm modules needed for the executor
     *
     * @generated from field: repeated string configurator_wasm = 7;
     */
    configuratorWasm?: string[];
    /**
     * Whether we should copy-over previous system settings (if any) to the new
     * plugin.
     *
     * @generated from field: optional bool copy_system_settings = 8;
     */
    copySystemSettings?: boolean;
};
/**
 * Describes the message mochabugapis.adapt.plugins.v1.StartUpload.
 * Use `create(StartUploadSchema)` to create a new message.
 */
export declare const StartUploadSchema: GenMessage<StartUpload, {
    jsonType: StartUploadJson;
}>;
/**
 * UploadPluginResponse represents the response from the CreatePlugin streaming
 * RPC. The server sends a single CreatePluginResponse after successfully
 * processing all UploadPluginResponse messages from the client.
 *
 * @generated from message mochabugapis.adapt.plugins.v1.UploadPluginResponse
 */
export type UploadPluginResponse = Message<"mochabugapis.adapt.plugins.v1.UploadPluginResponse"> & {};
/**
 * UploadPluginResponse represents the response from the CreatePlugin streaming
 * RPC. The server sends a single CreatePluginResponse after successfully
 * processing all UploadPluginResponse messages from the client.
 *
 * @generated from message mochabugapis.adapt.plugins.v1.UploadPluginResponse
 */
export type UploadPluginResponseJson = {};
/**
 * Describes the message mochabugapis.adapt.plugins.v1.UploadPluginResponse.
 * Use `create(UploadPluginResponseSchema)` to create a new message.
 */
export declare const UploadPluginResponseSchema: GenMessage<UploadPluginResponse, {
    jsonType: UploadPluginResponseJson;
}>;
/**
 * PluginService provides a service for uploading a plugin.
 *
 * @generated from service mochabugapis.adapt.plugins.v1.PluginService
 */
export declare const PluginService: GenService<{
    /**
     * UploadPlugin is a streaming RPC method that allows uploading a plugin in
     * chunks. The client can send multiple UploadPluginRequest messages, and the
     * server will respond with a single UploadPluginResponse after processing all
     * requests.
     *
     * @generated from rpc mochabugapis.adapt.plugins.v1.PluginService.UploadPlugin
     */
    uploadPlugin: {
        methodKind: "client_streaming";
        input: typeof UploadPluginRequestSchema;
        output: typeof UploadPluginResponseSchema;
    };
}>;
//# sourceMappingURL=plugins_pb.d.ts.map