// @generated by protoc-gen-es v1.10.0 with parameter "target=ts"
// @generated from file collabClickhouseStatement.proto (package api, syntax proto3)
/* eslint-disable */
// @ts-nocheck

import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from "@bufbuild/protobuf";
import { Message, proto3, protoInt64 } from "@bufbuild/protobuf";
import { MetadatasToApply } from "./metadata_pb.js";
import { Claim } from "./claim_pb.js";

/**
 * ClickHouseInput Proto message for clickhouse streaming process
 *
 * @generated from message api.CollabClickHouseInput
 */
export class CollabClickHouseInput extends Message<CollabClickHouseInput> {
  /**
   * @generated from field: api.CollabClickhouseElements ClickhouseElements = 1;
   */
  ClickhouseElements?: CollabClickhouseElements;

  /**
   * @generated from field: repeated api.MetadatasToApply MetadatasToApply = 2;
   */
  MetadatasToApply: MetadatasToApply[] = [];

  constructor(data?: PartialMessage<CollabClickHouseInput>) {
    super();
    proto3.util.initPartial(data, this);
  }

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.CollabClickHouseInput";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "ClickhouseElements", kind: "message", T: CollabClickhouseElements },
    { no: 2, name: "MetadatasToApply", kind: "message", T: MetadatasToApply, repeated: true },
  ]);

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CollabClickHouseInput {
    return new CollabClickHouseInput().fromBinary(bytes, options);
  }

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CollabClickHouseInput {
    return new CollabClickHouseInput().fromJson(jsonValue, options);
  }

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CollabClickHouseInput {
    return new CollabClickHouseInput().fromJsonString(jsonString, options);
  }

  static equals(a: CollabClickHouseInput | PlainMessage<CollabClickHouseInput> | undefined, b: CollabClickHouseInput | PlainMessage<CollabClickHouseInput> | undefined): boolean {
    return proto3.util.equals(CollabClickHouseInput, a, b);
  }
}

/**
 * @generated from message api.CollabClickhouseElement
 */
export class CollabClickhouseElement extends Message<CollabClickhouseElement> {
  /**
   * @generated from oneof api.CollabClickhouseElement.Content
   */
  Content: {
    /**
     * @generated from field: api.Claim Claim = 1;
     */
    value: Claim;
    case: "Claim";
  } | { case: undefined; value?: undefined } = { case: undefined };

  constructor(data?: PartialMessage<CollabClickhouseElement>) {
    super();
    proto3.util.initPartial(data, this);
  }

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.CollabClickhouseElement";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "Claim", kind: "message", T: Claim, oneof: "Content" },
  ]);

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CollabClickhouseElement {
    return new CollabClickhouseElement().fromBinary(bytes, options);
  }

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CollabClickhouseElement {
    return new CollabClickhouseElement().fromJson(jsonValue, options);
  }

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CollabClickhouseElement {
    return new CollabClickhouseElement().fromJsonString(jsonString, options);
  }

  static equals(a: CollabClickhouseElement | PlainMessage<CollabClickhouseElement> | undefined, b: CollabClickhouseElement | PlainMessage<CollabClickhouseElement> | undefined): boolean {
    return proto3.util.equals(CollabClickhouseElement, a, b);
  }
}

/**
 * @generated from message api.CollabClickhouseElements
 */
export class CollabClickhouseElements extends Message<CollabClickhouseElements> {
  /**
   * @generated from field: repeated api.CollabClickhouseElement ClickhouseElements = 1;
   */
  ClickhouseElements: CollabClickhouseElement[] = [];

  constructor(data?: PartialMessage<CollabClickhouseElements>) {
    super();
    proto3.util.initPartial(data, this);
  }

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.CollabClickhouseElements";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "ClickhouseElements", kind: "message", T: CollabClickhouseElement, repeated: true },
  ]);

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CollabClickhouseElements {
    return new CollabClickhouseElements().fromBinary(bytes, options);
  }

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CollabClickhouseElements {
    return new CollabClickhouseElements().fromJson(jsonValue, options);
  }

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CollabClickhouseElements {
    return new CollabClickhouseElements().fromJsonString(jsonString, options);
  }

  static equals(a: CollabClickhouseElements | PlainMessage<CollabClickhouseElements> | undefined, b: CollabClickhouseElements | PlainMessage<CollabClickhouseElements> | undefined): boolean {
    return proto3.util.equals(CollabClickhouseElements, a, b);
  }
}

/**
 * CollabCheckpointData  Proto message for clickhouse streaming process
 *
 * @generated from message api.CollabCheckpointData
 */
export class CollabCheckpointData extends Message<CollabCheckpointData> {
  /**
   * @generated from field: int64 IdCheckpoint = 1;
   */
  IdCheckpoint = protoInt64.zero;

  /**
   * @generated from field: string Project = 2;
   */
  Project = "";

  /**
   * @generated from field: repeated api.CollabClickHouseInput ClickHouseInput = 3;
   */
  ClickHouseInput: CollabClickHouseInput[] = [];

  constructor(data?: PartialMessage<CollabCheckpointData>) {
    super();
    proto3.util.initPartial(data, this);
  }

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.CollabCheckpointData";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "IdCheckpoint", kind: "scalar", T: 3 /* ScalarType.INT64 */ },
    { no: 2, name: "Project", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 3, name: "ClickHouseInput", kind: "message", T: CollabClickHouseInput, repeated: true },
  ]);

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CollabCheckpointData {
    return new CollabCheckpointData().fromBinary(bytes, options);
  }

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CollabCheckpointData {
    return new CollabCheckpointData().fromJson(jsonValue, options);
  }

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CollabCheckpointData {
    return new CollabCheckpointData().fromJsonString(jsonString, options);
  }

  static equals(a: CollabCheckpointData | PlainMessage<CollabCheckpointData> | undefined, b: CollabCheckpointData | PlainMessage<CollabCheckpointData> | undefined): boolean {
    return proto3.util.equals(CollabCheckpointData, a, b);
  }
}

