{"version":3,"file":"span_query.cjs","names":["MessageType","Timestamp","UnknownFieldHandler","WireType","Value","key: keyof WhereClause[\"fields\"] | undefined","val: WhereClause[\"fields\"][any] | undefined"],"sources":["../../generated/ts/query/span_query.ts"],"sourcesContent":["// @generated by protobuf-ts 2.11.1 with parameter generate_dependencies\n// @generated from protobuf file \"query/span_query.proto\" (package \"tusk.drift.query.v1\", syntax proto3)\n// tslint:disable\nimport type { BinaryWriteOptions } from \"@protobuf-ts/runtime\";\nimport type { IBinaryWriter } from \"@protobuf-ts/runtime\";\nimport { WireType } from \"@protobuf-ts/runtime\";\nimport type { BinaryReadOptions } from \"@protobuf-ts/runtime\";\nimport type { IBinaryReader } from \"@protobuf-ts/runtime\";\nimport { UnknownFieldHandler } from \"@protobuf-ts/runtime\";\nimport type { PartialMessage } from \"@protobuf-ts/runtime\";\nimport { reflectionMergePartial } from \"@protobuf-ts/runtime\";\nimport { MessageType } from \"@protobuf-ts/runtime\";\nimport { Value } from \"../google/protobuf/struct\";\nimport { Timestamp } from \"../google/protobuf/timestamp\";\n/**\n * @generated from protobuf message tusk.drift.query.v1.TimestampRange\n */\nexport interface TimestampRange {\n    /**\n     * @generated from protobuf field: google.protobuf.Timestamp start = 1\n     */\n    start?: Timestamp;\n    /**\n     * @generated from protobuf field: google.protobuf.Timestamp end = 2\n     */\n    end?: Timestamp;\n}\n/**\n * Optional extraction steps applied to a JSON-backed field predicate before\n * comparisons are evaluated.\n *\n * @generated from protobuf message tusk.drift.query.v1.FieldAccess\n */\nexport interface FieldAccess {\n    /**\n     * @generated from protobuf field: tusk.drift.query.v1.CastType cast_as = 1\n     */\n    castAs: CastType;\n    /**\n     * @generated from protobuf field: tusk.drift.query.v1.DecodeStrategy decode = 2\n     */\n    decode: DecodeStrategy;\n    /**\n     * @generated from protobuf field: optional string then_path = 3\n     */\n    thenPath?: string;\n}\n/**\n * Comparison operators applied to a single field path.\n *\n * Value-typed operators intentionally use google.protobuf.Value so the JSON\n * mapping stays ergonomic for humans and AI agents. Implementations should\n * validate which operators are valid for each field and how temporal values are\n * represented.\n *\n * @generated from protobuf message tusk.drift.query.v1.FieldPredicate\n */\nexport interface FieldPredicate {\n    /**\n     * @generated from protobuf field: google.protobuf.Value eq = 1\n     */\n    eq?: Value;\n    /**\n     * @generated from protobuf field: google.protobuf.Value neq = 2\n     */\n    neq?: Value;\n    /**\n     * @generated from protobuf field: repeated google.protobuf.Value in_values = 3\n     */\n    inValues: Value[];\n    /**\n     * @generated from protobuf field: repeated google.protobuf.Value not_in_values = 4\n     */\n    notInValues: Value[];\n    /**\n     * @generated from protobuf field: google.protobuf.Value gt = 5\n     */\n    gt?: Value;\n    /**\n     * @generated from protobuf field: google.protobuf.Value gte = 6\n     */\n    gte?: Value;\n    /**\n     * @generated from protobuf field: google.protobuf.Value lt = 7\n     */\n    lt?: Value;\n    /**\n     * @generated from protobuf field: google.protobuf.Value lte = 8\n     */\n    lte?: Value;\n    /**\n     * @generated from protobuf field: optional string contains = 9\n     */\n    contains?: string;\n    /**\n     * @generated from protobuf field: optional string starts_with = 10\n     */\n    startsWith?: string;\n    /**\n     * @generated from protobuf field: optional string ends_with = 11\n     */\n    endsWith?: string;\n    /**\n     * @generated from protobuf field: optional bool is_null = 12\n     */\n    isNull?: boolean;\n    /**\n     * @generated from protobuf field: tusk.drift.query.v1.TimestampRange between_timestamps = 13\n     */\n    betweenTimestamps?: TimestampRange;\n    /**\n     * @generated from protobuf field: tusk.drift.query.v1.FieldAccess access = 14\n     */\n    access?: FieldAccess;\n}\n/**\n * Recursive query clause.\n *\n * `fields` is keyed by canonical field path, for example:\n * - \"name\"\n * - \"packageName\"\n * - \"statusCode\"\n * - \"outputValue.statusCode\"\n * - \"inputValue.body\"\n *\n * @generated from protobuf message tusk.drift.query.v1.WhereClause\n */\nexport interface WhereClause {\n    /**\n     * @generated from protobuf field: map<string, tusk.drift.query.v1.FieldPredicate> fields = 1\n     */\n    fields: {\n        [key: string]: FieldPredicate;\n    };\n    /**\n     * @generated from protobuf field: repeated tusk.drift.query.v1.WhereClause and = 2\n     */\n    and: WhereClause[];\n    /**\n     * @generated from protobuf field: repeated tusk.drift.query.v1.WhereClause or = 3\n     */\n    or: WhereClause[];\n    /**\n     * @generated from protobuf field: tusk.drift.query.v1.WhereClause not = 4\n     */\n    not?: WhereClause;\n}\n/**\n * @generated from protobuf message tusk.drift.query.v1.SpanOrderBy\n */\nexport interface SpanOrderBy {\n    /**\n     * @generated from protobuf field: tusk.drift.query.v1.SpanSortField field = 1\n     */\n    field: SpanSortField;\n    /**\n     * @generated from protobuf field: tusk.drift.query.v1.SortDirection direction = 2\n     */\n    direction: SortDirection;\n}\n/**\n * @generated from protobuf message tusk.drift.query.v1.MetricOrderBy\n */\nexport interface MetricOrderBy {\n    /**\n     * @generated from protobuf field: tusk.drift.query.v1.AggregateMetric metric = 1\n     */\n    metric: AggregateMetric;\n    /**\n     * @generated from protobuf field: tusk.drift.query.v1.SortDirection direction = 2\n     */\n    direction: SortDirection;\n}\n/**\n * @generated from protobuf message tusk.drift.query.v1.SchemaComparisonPeriod\n */\nexport interface SchemaComparisonPeriod {\n    /**\n     * @generated from protobuf field: google.protobuf.Timestamp start_date = 1\n     */\n    startDate?: Timestamp;\n    /**\n     * @generated from protobuf field: google.protobuf.Timestamp end_date = 2\n     */\n    endDate?: Timestamp;\n}\n/**\n * @generated from protobuf message tusk.drift.query.v1.QuerySpansRequest\n */\nexport interface QuerySpansRequest {\n    /**\n     * @generated from protobuf field: string observable_service_id = 1\n     */\n    observableServiceId: string;\n    /**\n     * @generated from protobuf field: optional string client_id = 2\n     */\n    clientId?: string;\n    /**\n     * @generated from protobuf field: tusk.drift.query.v1.WhereClause where = 3\n     */\n    where?: WhereClause;\n    /**\n     * @generated from protobuf field: repeated tusk.drift.query.v1.SpanOrderBy order_by = 4\n     */\n    orderBy: SpanOrderBy[];\n    /**\n     * @generated from protobuf field: optional int32 limit = 5\n     */\n    limit?: number;\n    /**\n     * @generated from protobuf field: optional int32 offset = 6\n     */\n    offset?: number;\n    /**\n     * @generated from protobuf field: optional bool include_payloads = 7\n     */\n    includePayloads?: boolean;\n    /**\n     * @generated from protobuf field: optional int32 max_payload_length = 8\n     */\n    maxPayloadLength?: number;\n}\n/**\n * @generated from protobuf message tusk.drift.query.v1.GetSchemaRequest\n */\nexport interface GetSchemaRequest {\n    /**\n     * @generated from protobuf field: string observable_service_id = 1\n     */\n    observableServiceId: string;\n    /**\n     * @generated from protobuf field: optional string package_name = 2\n     */\n    packageName?: string;\n    /**\n     * @generated from protobuf field: optional string instrumentation_name = 3\n     */\n    instrumentationName?: string;\n    /**\n     * @generated from protobuf field: optional string name = 4\n     */\n    name?: string;\n    /**\n     * @generated from protobuf field: optional bool show_example = 5\n     */\n    showExample?: boolean;\n    /**\n     * @generated from protobuf field: optional int32 max_payload_length = 6\n     */\n    maxPayloadLength?: number;\n}\n/**\n * @generated from protobuf message tusk.drift.query.v1.ListDistinctValuesRequest\n */\nexport interface ListDistinctValuesRequest {\n    /**\n     * @generated from protobuf field: string observable_service_id = 1\n     */\n    observableServiceId: string;\n    /**\n     * @generated from protobuf field: optional string client_id = 2\n     */\n    clientId?: string;\n    /**\n     * @generated from protobuf field: string field = 3\n     */\n    field: string;\n    /**\n     * @generated from protobuf field: tusk.drift.query.v1.WhereClause where = 4\n     */\n    where?: WhereClause;\n    /**\n     * @generated from protobuf field: optional int32 limit = 5\n     */\n    limit?: number;\n}\n/**\n * @generated from protobuf message tusk.drift.query.v1.AggregateSpansRequest\n */\nexport interface AggregateSpansRequest {\n    /**\n     * @generated from protobuf field: string observable_service_id = 1\n     */\n    observableServiceId: string;\n    /**\n     * @generated from protobuf field: optional string client_id = 2\n     */\n    clientId?: string;\n    /**\n     * @generated from protobuf field: tusk.drift.query.v1.WhereClause where = 3\n     */\n    where?: WhereClause;\n    /**\n     * @generated from protobuf field: repeated tusk.drift.query.v1.AggregateGroupField group_by = 4\n     */\n    groupBy: AggregateGroupField[];\n    /**\n     * @generated from protobuf field: repeated tusk.drift.query.v1.AggregateMetric metrics = 5\n     */\n    metrics: AggregateMetric[];\n    /**\n     * @generated from protobuf field: tusk.drift.query.v1.TimeBucket time_bucket = 6\n     */\n    timeBucket: TimeBucket;\n    /**\n     * @generated from protobuf field: tusk.drift.query.v1.MetricOrderBy order_by = 7\n     */\n    orderBy?: MetricOrderBy;\n    /**\n     * @generated from protobuf field: optional int32 limit = 8\n     */\n    limit?: number;\n}\n/**\n * @generated from protobuf message tusk.drift.query.v1.GetTraceSpansRequest\n */\nexport interface GetTraceSpansRequest {\n    /**\n     * @generated from protobuf field: string observable_service_id = 1\n     */\n    observableServiceId: string;\n    /**\n     * @generated from protobuf field: optional string client_id = 2\n     */\n    clientId?: string;\n    /**\n     * @generated from protobuf field: string trace_id = 3\n     */\n    traceId: string;\n    /**\n     * @generated from protobuf field: optional bool include_payloads = 4\n     */\n    includePayloads?: boolean;\n    /**\n     * @generated from protobuf field: optional int32 max_payload_length = 5\n     */\n    maxPayloadLength?: number;\n}\n/**\n * @generated from protobuf message tusk.drift.query.v1.GetSpansByIdsRequest\n */\nexport interface GetSpansByIdsRequest {\n    /**\n     * @generated from protobuf field: string observable_service_id = 1\n     */\n    observableServiceId: string;\n    /**\n     * @generated from protobuf field: repeated string ids = 2\n     */\n    ids: string[];\n    /**\n     * @generated from protobuf field: repeated tusk.drift.query.v1.SelectableSpanField fields = 3\n     */\n    fields: SelectableSpanField[];\n    /**\n     * @generated from protobuf field: optional bool include_payloads = 4\n     */\n    includePayloads?: boolean;\n    /**\n     * @generated from protobuf field: optional int32 max_payload_length = 5\n     */\n    maxPayloadLength?: number;\n}\n/**\n * @generated from protobuf message tusk.drift.query.v1.CompareSchemaRequest\n */\nexport interface CompareSchemaRequest {\n    /**\n     * @generated from protobuf field: string observable_service_id = 1\n     */\n    observableServiceId: string;\n    /**\n     * @generated from protobuf field: optional string client_id = 2\n     */\n    clientId?: string;\n    /**\n     * @generated from protobuf field: string name = 3\n     */\n    name: string;\n    /**\n     * @generated from protobuf field: tusk.drift.query.v1.SchemaComparisonPeriod period_a = 4\n     */\n    periodA?: SchemaComparisonPeriod;\n    /**\n     * @generated from protobuf field: tusk.drift.query.v1.SchemaComparisonPeriod period_b = 5\n     */\n    periodB?: SchemaComparisonPeriod;\n    /**\n     * @generated from protobuf field: optional bool include_payloads = 6\n     */\n    includePayloads?: boolean;\n    /**\n     * @generated from protobuf field: optional int32 max_payload_length = 7\n     */\n    maxPayloadLength?: number;\n}\n// Canonical shared query schema for filtering and analyzing recorded spans.\n// \n// This package intentionally models the user-facing query shape shared by the\n// backend, MCP tools, and CLI instead of a lower-level AST that each client\n// would need to translate. Implementations are responsible for runtime\n// validation of field keys, operator compatibility, and JSON access rules.\n\n/**\n * Selectable fields when fetching spans by ID.\n *\n * @generated from protobuf enum tusk.drift.query.v1.SelectableSpanField\n */\nexport enum SelectableSpanField {\n    /**\n     * @generated from protobuf enum value: SELECTABLE_SPAN_FIELD_UNSPECIFIED = 0;\n     */\n    UNSPECIFIED = 0,\n    /**\n     * @generated from protobuf enum value: SELECTABLE_SPAN_FIELD_ID = 1;\n     */\n    ID = 1,\n    /**\n     * @generated from protobuf enum value: SELECTABLE_SPAN_FIELD_SPAN_ID = 2;\n     */\n    SPAN_ID = 2,\n    /**\n     * @generated from protobuf enum value: SELECTABLE_SPAN_FIELD_TRACE_ID = 3;\n     */\n    TRACE_ID = 3,\n    /**\n     * @generated from protobuf enum value: SELECTABLE_SPAN_FIELD_PARENT_SPAN_ID = 4;\n     */\n    PARENT_SPAN_ID = 4,\n    /**\n     * @generated from protobuf enum value: SELECTABLE_SPAN_FIELD_NAME = 5;\n     */\n    NAME = 5,\n    /**\n     * @generated from protobuf enum value: SELECTABLE_SPAN_FIELD_KIND = 6;\n     */\n    KIND = 6,\n    /**\n     * @generated from protobuf enum value: SELECTABLE_SPAN_FIELD_STATUS = 7;\n     */\n    STATUS = 7,\n    /**\n     * @generated from protobuf enum value: SELECTABLE_SPAN_FIELD_TIMESTAMP = 8;\n     */\n    TIMESTAMP = 8,\n    /**\n     * @generated from protobuf enum value: SELECTABLE_SPAN_FIELD_DURATION = 9;\n     */\n    DURATION = 9,\n    /**\n     * @generated from protobuf enum value: SELECTABLE_SPAN_FIELD_IS_ROOT_SPAN = 10;\n     */\n    IS_ROOT_SPAN = 10,\n    /**\n     * @generated from protobuf enum value: SELECTABLE_SPAN_FIELD_METADATA = 11;\n     */\n    METADATA = 11,\n    /**\n     * @generated from protobuf enum value: SELECTABLE_SPAN_FIELD_PACKAGE_NAME = 12;\n     */\n    PACKAGE_NAME = 12,\n    /**\n     * @generated from protobuf enum value: SELECTABLE_SPAN_FIELD_INSTRUMENTATION_NAME = 13;\n     */\n    INSTRUMENTATION_NAME = 13,\n    /**\n     * @generated from protobuf enum value: SELECTABLE_SPAN_FIELD_INPUT_VALUE = 14;\n     */\n    INPUT_VALUE = 14,\n    /**\n     * @generated from protobuf enum value: SELECTABLE_SPAN_FIELD_OUTPUT_VALUE = 15;\n     */\n    OUTPUT_VALUE = 15,\n    /**\n     * @generated from protobuf enum value: SELECTABLE_SPAN_FIELD_INPUT_SCHEMA = 16;\n     */\n    INPUT_SCHEMA = 16,\n    /**\n     * @generated from protobuf enum value: SELECTABLE_SPAN_FIELD_OUTPUT_SCHEMA = 17;\n     */\n    OUTPUT_SCHEMA = 17,\n    /**\n     * @generated from protobuf enum value: SELECTABLE_SPAN_FIELD_ENVIRONMENT = 18;\n     */\n    ENVIRONMENT = 18,\n    /**\n     * @generated from protobuf enum value: SELECTABLE_SPAN_FIELD_CREATED_AT = 19;\n     */\n    CREATED_AT = 19,\n    /**\n     * @generated from protobuf enum value: SELECTABLE_SPAN_FIELD_UPDATED_AT = 20;\n     */\n    UPDATED_AT = 20\n}\n/**\n * JSON-backed columns that support JSONPath extraction.\n *\n * @generated from protobuf enum tusk.drift.query.v1.JsonColumn\n */\nexport enum JsonColumn {\n    /**\n     * @generated from protobuf enum value: JSON_COLUMN_UNSPECIFIED = 0;\n     */\n    UNSPECIFIED = 0,\n    /**\n     * @generated from protobuf enum value: JSON_COLUMN_INPUT_VALUE = 1;\n     */\n    INPUT_VALUE = 1,\n    /**\n     * @generated from protobuf enum value: JSON_COLUMN_OUTPUT_VALUE = 2;\n     */\n    OUTPUT_VALUE = 2,\n    /**\n     * @generated from protobuf enum value: JSON_COLUMN_METADATA = 3;\n     */\n    METADATA = 3,\n    /**\n     * @generated from protobuf enum value: JSON_COLUMN_STATUS = 4;\n     */\n    STATUS = 4\n}\n/**\n * Optional cast applied before comparisons.\n *\n * @generated from protobuf enum tusk.drift.query.v1.CastType\n */\nexport enum CastType {\n    /**\n     * @generated from protobuf enum value: CAST_TYPE_UNSPECIFIED = 0;\n     */\n    UNSPECIFIED = 0,\n    /**\n     * @generated from protobuf enum value: CAST_TYPE_TEXT = 1;\n     */\n    TEXT = 1,\n    /**\n     * @generated from protobuf enum value: CAST_TYPE_INT = 2;\n     */\n    INT = 2,\n    /**\n     * @generated from protobuf enum value: CAST_TYPE_FLOAT = 3;\n     */\n    FLOAT = 3,\n    /**\n     * @generated from protobuf enum value: CAST_TYPE_BOOLEAN = 4;\n     */\n    BOOLEAN = 4\n}\n/**\n * Optional decoding applied before an additional JSONPath extraction.\n *\n * @generated from protobuf enum tusk.drift.query.v1.DecodeStrategy\n */\nexport enum DecodeStrategy {\n    /**\n     * @generated from protobuf enum value: DECODE_STRATEGY_UNSPECIFIED = 0;\n     */\n    UNSPECIFIED = 0,\n    /**\n     * @generated from protobuf enum value: DECODE_STRATEGY_BASE64 = 1;\n     */\n    BASE64 = 1\n}\n/**\n * @generated from protobuf enum tusk.drift.query.v1.SortDirection\n */\nexport enum SortDirection {\n    /**\n     * @generated from protobuf enum value: SORT_DIRECTION_UNSPECIFIED = 0;\n     */\n    UNSPECIFIED = 0,\n    /**\n     * @generated from protobuf enum value: SORT_DIRECTION_ASC = 1;\n     */\n    ASC = 1,\n    /**\n     * @generated from protobuf enum value: SORT_DIRECTION_DESC = 2;\n     */\n    DESC = 2\n}\n/**\n * @generated from protobuf enum tusk.drift.query.v1.SpanSortField\n */\nexport enum SpanSortField {\n    /**\n     * @generated from protobuf enum value: SPAN_SORT_FIELD_UNSPECIFIED = 0;\n     */\n    UNSPECIFIED = 0,\n    /**\n     * @generated from protobuf enum value: SPAN_SORT_FIELD_TIMESTAMP = 1;\n     */\n    TIMESTAMP = 1,\n    /**\n     * @generated from protobuf enum value: SPAN_SORT_FIELD_CREATED_AT = 2;\n     */\n    CREATED_AT = 2,\n    /**\n     * @generated from protobuf enum value: SPAN_SORT_FIELD_UPDATED_AT = 3;\n     */\n    UPDATED_AT = 3,\n    /**\n     * @generated from protobuf enum value: SPAN_SORT_FIELD_DURATION = 4;\n     */\n    DURATION = 4,\n    /**\n     * @generated from protobuf enum value: SPAN_SORT_FIELD_NAME = 5;\n     */\n    NAME = 5,\n    /**\n     * @generated from protobuf enum value: SPAN_SORT_FIELD_TRACE_ID = 6;\n     */\n    TRACE_ID = 6\n}\n/**\n * @generated from protobuf enum tusk.drift.query.v1.AggregateMetric\n */\nexport enum AggregateMetric {\n    /**\n     * @generated from protobuf enum value: AGGREGATE_METRIC_UNSPECIFIED = 0;\n     */\n    UNSPECIFIED = 0,\n    /**\n     * @generated from protobuf enum value: AGGREGATE_METRIC_COUNT = 1;\n     */\n    COUNT = 1,\n    /**\n     * @generated from protobuf enum value: AGGREGATE_METRIC_ERROR_COUNT = 2;\n     */\n    ERROR_COUNT = 2,\n    /**\n     * @generated from protobuf enum value: AGGREGATE_METRIC_ERROR_RATE = 3;\n     */\n    ERROR_RATE = 3,\n    /**\n     * @generated from protobuf enum value: AGGREGATE_METRIC_AVG_DURATION = 4;\n     */\n    AVG_DURATION = 4,\n    /**\n     * @generated from protobuf enum value: AGGREGATE_METRIC_MIN_DURATION = 5;\n     */\n    MIN_DURATION = 5,\n    /**\n     * @generated from protobuf enum value: AGGREGATE_METRIC_MAX_DURATION = 6;\n     */\n    MAX_DURATION = 6,\n    /**\n     * @generated from protobuf enum value: AGGREGATE_METRIC_P50_DURATION = 7;\n     */\n    P50_DURATION = 7,\n    /**\n     * @generated from protobuf enum value: AGGREGATE_METRIC_P95_DURATION = 8;\n     */\n    P95_DURATION = 8,\n    /**\n     * @generated from protobuf enum value: AGGREGATE_METRIC_P99_DURATION = 9;\n     */\n    P99_DURATION = 9\n}\n/**\n * @generated from protobuf enum tusk.drift.query.v1.AggregateGroupField\n */\nexport enum AggregateGroupField {\n    /**\n     * @generated from protobuf enum value: AGGREGATE_GROUP_FIELD_UNSPECIFIED = 0;\n     */\n    UNSPECIFIED = 0,\n    /**\n     * @generated from protobuf enum value: AGGREGATE_GROUP_FIELD_NAME = 1;\n     */\n    NAME = 1,\n    /**\n     * @generated from protobuf enum value: AGGREGATE_GROUP_FIELD_KIND = 2;\n     */\n    KIND = 2,\n    /**\n     * @generated from protobuf enum value: AGGREGATE_GROUP_FIELD_PACKAGE_NAME = 3;\n     */\n    PACKAGE_NAME = 3,\n    /**\n     * @generated from protobuf enum value: AGGREGATE_GROUP_FIELD_INSTRUMENTATION_NAME = 4;\n     */\n    INSTRUMENTATION_NAME = 4,\n    /**\n     * @generated from protobuf enum value: AGGREGATE_GROUP_FIELD_ENVIRONMENT = 5;\n     */\n    ENVIRONMENT = 5,\n    /**\n     * @generated from protobuf enum value: AGGREGATE_GROUP_FIELD_STATUS_CODE = 6;\n     */\n    STATUS_CODE = 6\n}\n/**\n * @generated from protobuf enum tusk.drift.query.v1.TimeBucket\n */\nexport enum TimeBucket {\n    /**\n     * @generated from protobuf enum value: TIME_BUCKET_UNSPECIFIED = 0;\n     */\n    UNSPECIFIED = 0,\n    /**\n     * @generated from protobuf enum value: TIME_BUCKET_HOUR = 1;\n     */\n    HOUR = 1,\n    /**\n     * @generated from protobuf enum value: TIME_BUCKET_DAY = 2;\n     */\n    DAY = 2,\n    /**\n     * @generated from protobuf enum value: TIME_BUCKET_WEEK = 3;\n     */\n    WEEK = 3\n}\n// @generated message type with reflection information, may provide speed optimized methods\nclass TimestampRange$Type extends MessageType<TimestampRange> {\n    constructor() {\n        super(\"tusk.drift.query.v1.TimestampRange\", [\n            { no: 1, name: \"start\", kind: \"message\", T: () => Timestamp },\n            { no: 2, name: \"end\", kind: \"message\", T: () => Timestamp }\n        ]);\n    }\n    create(value?: PartialMessage<TimestampRange>): TimestampRange {\n        const message = globalThis.Object.create((this.messagePrototype!));\n        if (value !== undefined)\n            reflectionMergePartial<TimestampRange>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: TimestampRange): TimestampRange {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* google.protobuf.Timestamp start */ 1:\n                    message.start = Timestamp.internalBinaryRead(reader, reader.uint32(), options, message.start);\n                    break;\n                case /* google.protobuf.Timestamp end */ 2:\n                    message.end = Timestamp.internalBinaryRead(reader, reader.uint32(), options, message.end);\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: TimestampRange, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* google.protobuf.Timestamp start = 1; */\n        if (message.start)\n            Timestamp.internalBinaryWrite(message.start, writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n        /* google.protobuf.Timestamp end = 2; */\n        if (message.end)\n            Timestamp.internalBinaryWrite(message.end, writer.tag(2, WireType.LengthDelimited).fork(), options).join();\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message tusk.drift.query.v1.TimestampRange\n */\nexport const TimestampRange = new TimestampRange$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass FieldAccess$Type extends MessageType<FieldAccess> {\n    constructor() {\n        super(\"tusk.drift.query.v1.FieldAccess\", [\n            { no: 1, name: \"cast_as\", kind: \"enum\", T: () => [\"tusk.drift.query.v1.CastType\", CastType, \"CAST_TYPE_\"] },\n            { no: 2, name: \"decode\", kind: \"enum\", T: () => [\"tusk.drift.query.v1.DecodeStrategy\", DecodeStrategy, \"DECODE_STRATEGY_\"] },\n            { no: 3, name: \"then_path\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ }\n        ]);\n    }\n    create(value?: PartialMessage<FieldAccess>): FieldAccess {\n        const message = globalThis.Object.create((this.messagePrototype!));\n        message.castAs = 0;\n        message.decode = 0;\n        if (value !== undefined)\n            reflectionMergePartial<FieldAccess>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FieldAccess): FieldAccess {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* tusk.drift.query.v1.CastType cast_as */ 1:\n                    message.castAs = reader.int32();\n                    break;\n                case /* tusk.drift.query.v1.DecodeStrategy decode */ 2:\n                    message.decode = reader.int32();\n                    break;\n                case /* optional string then_path */ 3:\n                    message.thenPath = reader.string();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: FieldAccess, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* tusk.drift.query.v1.CastType cast_as = 1; */\n        if (message.castAs !== 0)\n            writer.tag(1, WireType.Varint).int32(message.castAs);\n        /* tusk.drift.query.v1.DecodeStrategy decode = 2; */\n        if (message.decode !== 0)\n            writer.tag(2, WireType.Varint).int32(message.decode);\n        /* optional string then_path = 3; */\n        if (message.thenPath !== undefined)\n            writer.tag(3, WireType.LengthDelimited).string(message.thenPath);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message tusk.drift.query.v1.FieldAccess\n */\nexport const FieldAccess = new FieldAccess$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass FieldPredicate$Type extends MessageType<FieldPredicate> {\n    constructor() {\n        super(\"tusk.drift.query.v1.FieldPredicate\", [\n            { no: 1, name: \"eq\", kind: \"message\", T: () => Value },\n            { no: 2, name: \"neq\", kind: \"message\", T: () => Value },\n            { no: 3, name: \"in_values\", kind: \"message\", repeat: 2 /*RepeatType.UNPACKED*/, T: () => Value },\n            { no: 4, name: \"not_in_values\", kind: \"message\", repeat: 2 /*RepeatType.UNPACKED*/, T: () => Value },\n            { no: 5, name: \"gt\", kind: \"message\", T: () => Value },\n            { no: 6, name: \"gte\", kind: \"message\", T: () => Value },\n            { no: 7, name: \"lt\", kind: \"message\", T: () => Value },\n            { no: 8, name: \"lte\", kind: \"message\", T: () => Value },\n            { no: 9, name: \"contains\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ },\n            { no: 10, name: \"starts_with\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ },\n            { no: 11, name: \"ends_with\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ },\n            { no: 12, name: \"is_null\", kind: \"scalar\", opt: true, T: 8 /*ScalarType.BOOL*/ },\n            { no: 13, name: \"between_timestamps\", kind: \"message\", T: () => TimestampRange },\n            { no: 14, name: \"access\", kind: \"message\", T: () => FieldAccess }\n        ]);\n    }\n    create(value?: PartialMessage<FieldPredicate>): FieldPredicate {\n        const message = globalThis.Object.create((this.messagePrototype!));\n        message.inValues = [];\n        message.notInValues = [];\n        if (value !== undefined)\n            reflectionMergePartial<FieldPredicate>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FieldPredicate): FieldPredicate {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* google.protobuf.Value eq */ 1:\n                    message.eq = Value.internalBinaryRead(reader, reader.uint32(), options, message.eq);\n                    break;\n                case /* google.protobuf.Value neq */ 2:\n                    message.neq = Value.internalBinaryRead(reader, reader.uint32(), options, message.neq);\n                    break;\n                case /* repeated google.protobuf.Value in_values */ 3:\n                    message.inValues.push(Value.internalBinaryRead(reader, reader.uint32(), options));\n                    break;\n                case /* repeated google.protobuf.Value not_in_values */ 4:\n                    message.notInValues.push(Value.internalBinaryRead(reader, reader.uint32(), options));\n                    break;\n                case /* google.protobuf.Value gt */ 5:\n                    message.gt = Value.internalBinaryRead(reader, reader.uint32(), options, message.gt);\n                    break;\n                case /* google.protobuf.Value gte */ 6:\n                    message.gte = Value.internalBinaryRead(reader, reader.uint32(), options, message.gte);\n                    break;\n                case /* google.protobuf.Value lt */ 7:\n                    message.lt = Value.internalBinaryRead(reader, reader.uint32(), options, message.lt);\n                    break;\n                case /* google.protobuf.Value lte */ 8:\n                    message.lte = Value.internalBinaryRead(reader, reader.uint32(), options, message.lte);\n                    break;\n                case /* optional string contains */ 9:\n                    message.contains = reader.string();\n                    break;\n                case /* optional string starts_with */ 10:\n                    message.startsWith = reader.string();\n                    break;\n                case /* optional string ends_with */ 11:\n                    message.endsWith = reader.string();\n                    break;\n                case /* optional bool is_null */ 12:\n                    message.isNull = reader.bool();\n                    break;\n                case /* tusk.drift.query.v1.TimestampRange between_timestamps */ 13:\n                    message.betweenTimestamps = TimestampRange.internalBinaryRead(reader, reader.uint32(), options, message.betweenTimestamps);\n                    break;\n                case /* tusk.drift.query.v1.FieldAccess access */ 14:\n                    message.access = FieldAccess.internalBinaryRead(reader, reader.uint32(), options, message.access);\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: FieldPredicate, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* google.protobuf.Value eq = 1; */\n        if (message.eq)\n            Value.internalBinaryWrite(message.eq, writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n        /* google.protobuf.Value neq = 2; */\n        if (message.neq)\n            Value.internalBinaryWrite(message.neq, writer.tag(2, WireType.LengthDelimited).fork(), options).join();\n        /* repeated google.protobuf.Value in_values = 3; */\n        for (let i = 0; i < message.inValues.length; i++)\n            Value.internalBinaryWrite(message.inValues[i], writer.tag(3, WireType.LengthDelimited).fork(), options).join();\n        /* repeated google.protobuf.Value not_in_values = 4; */\n        for (let i = 0; i < message.notInValues.length; i++)\n            Value.internalBinaryWrite(message.notInValues[i], writer.tag(4, WireType.LengthDelimited).fork(), options).join();\n        /* google.protobuf.Value gt = 5; */\n        if (message.gt)\n            Value.internalBinaryWrite(message.gt, writer.tag(5, WireType.LengthDelimited).fork(), options).join();\n        /* google.protobuf.Value gte = 6; */\n        if (message.gte)\n            Value.internalBinaryWrite(message.gte, writer.tag(6, WireType.LengthDelimited).fork(), options).join();\n        /* google.protobuf.Value lt = 7; */\n        if (message.lt)\n            Value.internalBinaryWrite(message.lt, writer.tag(7, WireType.LengthDelimited).fork(), options).join();\n        /* google.protobuf.Value lte = 8; */\n        if (message.lte)\n            Value.internalBinaryWrite(message.lte, writer.tag(8, WireType.LengthDelimited).fork(), options).join();\n        /* optional string contains = 9; */\n        if (message.contains !== undefined)\n            writer.tag(9, WireType.LengthDelimited).string(message.contains);\n        /* optional string starts_with = 10; */\n        if (message.startsWith !== undefined)\n            writer.tag(10, WireType.LengthDelimited).string(message.startsWith);\n        /* optional string ends_with = 11; */\n        if (message.endsWith !== undefined)\n            writer.tag(11, WireType.LengthDelimited).string(message.endsWith);\n        /* optional bool is_null = 12; */\n        if (message.isNull !== undefined)\n            writer.tag(12, WireType.Varint).bool(message.isNull);\n        /* tusk.drift.query.v1.TimestampRange between_timestamps = 13; */\n        if (message.betweenTimestamps)\n            TimestampRange.internalBinaryWrite(message.betweenTimestamps, writer.tag(13, WireType.LengthDelimited).fork(), options).join();\n        /* tusk.drift.query.v1.FieldAccess access = 14; */\n        if (message.access)\n            FieldAccess.internalBinaryWrite(message.access, writer.tag(14, WireType.LengthDelimited).fork(), options).join();\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message tusk.drift.query.v1.FieldPredicate\n */\nexport const FieldPredicate = new FieldPredicate$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass WhereClause$Type extends MessageType<WhereClause> {\n    constructor() {\n        super(\"tusk.drift.query.v1.WhereClause\", [\n            { no: 1, name: \"fields\", kind: \"map\", K: 9 /*ScalarType.STRING*/, V: { kind: \"message\", T: () => FieldPredicate } },\n            { no: 2, name: \"and\", kind: \"message\", repeat: 2 /*RepeatType.UNPACKED*/, T: () => WhereClause },\n            { no: 3, name: \"or\", kind: \"message\", repeat: 2 /*RepeatType.UNPACKED*/, T: () => WhereClause },\n            { no: 4, name: \"not\", kind: \"message\", T: () => WhereClause }\n        ]);\n    }\n    create(value?: PartialMessage<WhereClause>): WhereClause {\n        const message = globalThis.Object.create((this.messagePrototype!));\n        message.fields = {};\n        message.and = [];\n        message.or = [];\n        if (value !== undefined)\n            reflectionMergePartial<WhereClause>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: WhereClause): WhereClause {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* map<string, tusk.drift.query.v1.FieldPredicate> fields */ 1:\n                    this.binaryReadMap1(message.fields, reader, options);\n                    break;\n                case /* repeated tusk.drift.query.v1.WhereClause and */ 2:\n                    message.and.push(WhereClause.internalBinaryRead(reader, reader.uint32(), options));\n                    break;\n                case /* repeated tusk.drift.query.v1.WhereClause or */ 3:\n                    message.or.push(WhereClause.internalBinaryRead(reader, reader.uint32(), options));\n                    break;\n                case /* tusk.drift.query.v1.WhereClause not */ 4:\n                    message.not = WhereClause.internalBinaryRead(reader, reader.uint32(), options, message.not);\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    private binaryReadMap1(map: WhereClause[\"fields\"], reader: IBinaryReader, options: BinaryReadOptions): void {\n        let len = reader.uint32(), end = reader.pos + len, key: keyof WhereClause[\"fields\"] | undefined, val: WhereClause[\"fields\"][any] | undefined;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case 1:\n                    key = reader.string();\n                    break;\n                case 2:\n                    val = FieldPredicate.internalBinaryRead(reader, reader.uint32(), options);\n                    break;\n                default: throw new globalThis.Error(\"unknown map entry field for tusk.drift.query.v1.WhereClause.fields\");\n            }\n        }\n        map[key ?? \"\"] = val ?? FieldPredicate.create();\n    }\n    internalBinaryWrite(message: WhereClause, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* map<string, tusk.drift.query.v1.FieldPredicate> fields = 1; */\n        for (let k of globalThis.Object.keys(message.fields)) {\n            writer.tag(1, WireType.LengthDelimited).fork().tag(1, WireType.LengthDelimited).string(k);\n            writer.tag(2, WireType.LengthDelimited).fork();\n            FieldPredicate.internalBinaryWrite(message.fields[k], writer, options);\n            writer.join().join();\n        }\n        /* repeated tusk.drift.query.v1.WhereClause and = 2; */\n        for (let i = 0; i < message.and.length; i++)\n            WhereClause.internalBinaryWrite(message.and[i], writer.tag(2, WireType.LengthDelimited).fork(), options).join();\n        /* repeated tusk.drift.query.v1.WhereClause or = 3; */\n        for (let i = 0; i < message.or.length; i++)\n            WhereClause.internalBinaryWrite(message.or[i], writer.tag(3, WireType.LengthDelimited).fork(), options).join();\n        /* tusk.drift.query.v1.WhereClause not = 4; */\n        if (message.not)\n            WhereClause.internalBinaryWrite(message.not, writer.tag(4, WireType.LengthDelimited).fork(), options).join();\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message tusk.drift.query.v1.WhereClause\n */\nexport const WhereClause = new WhereClause$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass SpanOrderBy$Type extends MessageType<SpanOrderBy> {\n    constructor() {\n        super(\"tusk.drift.query.v1.SpanOrderBy\", [\n            { no: 1, name: \"field\", kind: \"enum\", T: () => [\"tusk.drift.query.v1.SpanSortField\", SpanSortField, \"SPAN_SORT_FIELD_\"] },\n            { no: 2, name: \"direction\", kind: \"enum\", T: () => [\"tusk.drift.query.v1.SortDirection\", SortDirection, \"SORT_DIRECTION_\"] }\n        ]);\n    }\n    create(value?: PartialMessage<SpanOrderBy>): SpanOrderBy {\n        const message = globalThis.Object.create((this.messagePrototype!));\n        message.field = 0;\n        message.direction = 0;\n        if (value !== undefined)\n            reflectionMergePartial<SpanOrderBy>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SpanOrderBy): SpanOrderBy {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* tusk.drift.query.v1.SpanSortField field */ 1:\n                    message.field = reader.int32();\n                    break;\n                case /* tusk.drift.query.v1.SortDirection direction */ 2:\n                    message.direction = reader.int32();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: SpanOrderBy, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* tusk.drift.query.v1.SpanSortField field = 1; */\n        if (message.field !== 0)\n            writer.tag(1, WireType.Varint).int32(message.field);\n        /* tusk.drift.query.v1.SortDirection direction = 2; */\n        if (message.direction !== 0)\n            writer.tag(2, WireType.Varint).int32(message.direction);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message tusk.drift.query.v1.SpanOrderBy\n */\nexport const SpanOrderBy = new SpanOrderBy$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass MetricOrderBy$Type extends MessageType<MetricOrderBy> {\n    constructor() {\n        super(\"tusk.drift.query.v1.MetricOrderBy\", [\n            { no: 1, name: \"metric\", kind: \"enum\", T: () => [\"tusk.drift.query.v1.AggregateMetric\", AggregateMetric, \"AGGREGATE_METRIC_\"] },\n            { no: 2, name: \"direction\", kind: \"enum\", T: () => [\"tusk.drift.query.v1.SortDirection\", SortDirection, \"SORT_DIRECTION_\"] }\n        ]);\n    }\n    create(value?: PartialMessage<MetricOrderBy>): MetricOrderBy {\n        const message = globalThis.Object.create((this.messagePrototype!));\n        message.metric = 0;\n        message.direction = 0;\n        if (value !== undefined)\n            reflectionMergePartial<MetricOrderBy>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: MetricOrderBy): MetricOrderBy {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* tusk.drift.query.v1.AggregateMetric metric */ 1:\n                    message.metric = reader.int32();\n                    break;\n                case /* tusk.drift.query.v1.SortDirection direction */ 2:\n                    message.direction = reader.int32();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: MetricOrderBy, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* tusk.drift.query.v1.AggregateMetric metric = 1; */\n        if (message.metric !== 0)\n            writer.tag(1, WireType.Varint).int32(message.metric);\n        /* tusk.drift.query.v1.SortDirection direction = 2; */\n        if (message.direction !== 0)\n            writer.tag(2, WireType.Varint).int32(message.direction);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message tusk.drift.query.v1.MetricOrderBy\n */\nexport const MetricOrderBy = new MetricOrderBy$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass SchemaComparisonPeriod$Type extends MessageType<SchemaComparisonPeriod> {\n    constructor() {\n        super(\"tusk.drift.query.v1.SchemaComparisonPeriod\", [\n            { no: 1, name: \"start_date\", kind: \"message\", T: () => Timestamp },\n            { no: 2, name: \"end_date\", kind: \"message\", T: () => Timestamp }\n        ]);\n    }\n    create(value?: PartialMessage<SchemaComparisonPeriod>): SchemaComparisonPeriod {\n        const message = globalThis.Object.create((this.messagePrototype!));\n        if (value !== undefined)\n            reflectionMergePartial<SchemaComparisonPeriod>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SchemaComparisonPeriod): SchemaComparisonPeriod {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* google.protobuf.Timestamp start_date */ 1:\n                    message.startDate = Timestamp.internalBinaryRead(reader, reader.uint32(), options, message.startDate);\n                    break;\n                case /* google.protobuf.Timestamp end_date */ 2:\n                    message.endDate = Timestamp.internalBinaryRead(reader, reader.uint32(), options, message.endDate);\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: SchemaComparisonPeriod, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* google.protobuf.Timestamp start_date = 1; */\n        if (message.startDate)\n            Timestamp.internalBinaryWrite(message.startDate, writer.tag(1, WireType.LengthDelimited).fork(), options).join();\n        /* google.protobuf.Timestamp end_date = 2; */\n        if (message.endDate)\n            Timestamp.internalBinaryWrite(message.endDate, writer.tag(2, WireType.LengthDelimited).fork(), options).join();\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message tusk.drift.query.v1.SchemaComparisonPeriod\n */\nexport const SchemaComparisonPeriod = new SchemaComparisonPeriod$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass QuerySpansRequest$Type extends MessageType<QuerySpansRequest> {\n    constructor() {\n        super(\"tusk.drift.query.v1.QuerySpansRequest\", [\n            { no: 1, name: \"observable_service_id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 2, name: \"client_id\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ },\n            { no: 3, name: \"where\", kind: \"message\", T: () => WhereClause },\n            { no: 4, name: \"order_by\", kind: \"message\", repeat: 2 /*RepeatType.UNPACKED*/, T: () => SpanOrderBy },\n            { no: 5, name: \"limit\", kind: \"scalar\", opt: true, T: 5 /*ScalarType.INT32*/ },\n            { no: 6, name: \"offset\", kind: \"scalar\", opt: true, T: 5 /*ScalarType.INT32*/ },\n            { no: 7, name: \"include_payloads\", kind: \"scalar\", opt: true, T: 8 /*ScalarType.BOOL*/ },\n            { no: 8, name: \"max_payload_length\", kind: \"scalar\", opt: true, T: 5 /*ScalarType.INT32*/ }\n        ]);\n    }\n    create(value?: PartialMessage<QuerySpansRequest>): QuerySpansRequest {\n        const message = globalThis.Object.create((this.messagePrototype!));\n        message.observableServiceId = \"\";\n        message.orderBy = [];\n        if (value !== undefined)\n            reflectionMergePartial<QuerySpansRequest>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: QuerySpansRequest): QuerySpansRequest {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* string observable_service_id */ 1:\n                    message.observableServiceId = reader.string();\n                    break;\n                case /* optional string client_id */ 2:\n                    message.clientId = reader.string();\n                    break;\n                case /* tusk.drift.query.v1.WhereClause where */ 3:\n                    message.where = WhereClause.internalBinaryRead(reader, reader.uint32(), options, message.where);\n                    break;\n                case /* repeated tusk.drift.query.v1.SpanOrderBy order_by */ 4:\n                    message.orderBy.push(SpanOrderBy.internalBinaryRead(reader, reader.uint32(), options));\n                    break;\n                case /* optional int32 limit */ 5:\n                    message.limit = reader.int32();\n                    break;\n                case /* optional int32 offset */ 6:\n                    message.offset = reader.int32();\n                    break;\n                case /* optional bool include_payloads */ 7:\n                    message.includePayloads = reader.bool();\n                    break;\n                case /* optional int32 max_payload_length */ 8:\n                    message.maxPayloadLength = reader.int32();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: QuerySpansRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* string observable_service_id = 1; */\n        if (message.observableServiceId !== \"\")\n            writer.tag(1, WireType.LengthDelimited).string(message.observableServiceId);\n        /* optional string client_id = 2; */\n        if (message.clientId !== undefined)\n            writer.tag(2, WireType.LengthDelimited).string(message.clientId);\n        /* tusk.drift.query.v1.WhereClause where = 3; */\n        if (message.where)\n            WhereClause.internalBinaryWrite(message.where, writer.tag(3, WireType.LengthDelimited).fork(), options).join();\n        /* repeated tusk.drift.query.v1.SpanOrderBy order_by = 4; */\n        for (let i = 0; i < message.orderBy.length; i++)\n            SpanOrderBy.internalBinaryWrite(message.orderBy[i], writer.tag(4, WireType.LengthDelimited).fork(), options).join();\n        /* optional int32 limit = 5; */\n        if (message.limit !== undefined)\n            writer.tag(5, WireType.Varint).int32(message.limit);\n        /* optional int32 offset = 6; */\n        if (message.offset !== undefined)\n            writer.tag(6, WireType.Varint).int32(message.offset);\n        /* optional bool include_payloads = 7; */\n        if (message.includePayloads !== undefined)\n            writer.tag(7, WireType.Varint).bool(message.includePayloads);\n        /* optional int32 max_payload_length = 8; */\n        if (message.maxPayloadLength !== undefined)\n            writer.tag(8, WireType.Varint).int32(message.maxPayloadLength);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message tusk.drift.query.v1.QuerySpansRequest\n */\nexport const QuerySpansRequest = new QuerySpansRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass GetSchemaRequest$Type extends MessageType<GetSchemaRequest> {\n    constructor() {\n        super(\"tusk.drift.query.v1.GetSchemaRequest\", [\n            { no: 1, name: \"observable_service_id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 2, name: \"package_name\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ },\n            { no: 3, name: \"instrumentation_name\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ },\n            { no: 4, name: \"name\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ },\n            { no: 5, name: \"show_example\", kind: \"scalar\", opt: true, T: 8 /*ScalarType.BOOL*/ },\n            { no: 6, name: \"max_payload_length\", kind: \"scalar\", opt: true, T: 5 /*ScalarType.INT32*/ }\n        ]);\n    }\n    create(value?: PartialMessage<GetSchemaRequest>): GetSchemaRequest {\n        const message = globalThis.Object.create((this.messagePrototype!));\n        message.observableServiceId = \"\";\n        if (value !== undefined)\n            reflectionMergePartial<GetSchemaRequest>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: GetSchemaRequest): GetSchemaRequest {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* string observable_service_id */ 1:\n                    message.observableServiceId = reader.string();\n                    break;\n                case /* optional string package_name */ 2:\n                    message.packageName = reader.string();\n                    break;\n                case /* optional string instrumentation_name */ 3:\n                    message.instrumentationName = reader.string();\n                    break;\n                case /* optional string name */ 4:\n                    message.name = reader.string();\n                    break;\n                case /* optional bool show_example */ 5:\n                    message.showExample = reader.bool();\n                    break;\n                case /* optional int32 max_payload_length */ 6:\n                    message.maxPayloadLength = reader.int32();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: GetSchemaRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* string observable_service_id = 1; */\n        if (message.observableServiceId !== \"\")\n            writer.tag(1, WireType.LengthDelimited).string(message.observableServiceId);\n        /* optional string package_name = 2; */\n        if (message.packageName !== undefined)\n            writer.tag(2, WireType.LengthDelimited).string(message.packageName);\n        /* optional string instrumentation_name = 3; */\n        if (message.instrumentationName !== undefined)\n            writer.tag(3, WireType.LengthDelimited).string(message.instrumentationName);\n        /* optional string name = 4; */\n        if (message.name !== undefined)\n            writer.tag(4, WireType.LengthDelimited).string(message.name);\n        /* optional bool show_example = 5; */\n        if (message.showExample !== undefined)\n            writer.tag(5, WireType.Varint).bool(message.showExample);\n        /* optional int32 max_payload_length = 6; */\n        if (message.maxPayloadLength !== undefined)\n            writer.tag(6, WireType.Varint).int32(message.maxPayloadLength);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message tusk.drift.query.v1.GetSchemaRequest\n */\nexport const GetSchemaRequest = new GetSchemaRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass ListDistinctValuesRequest$Type extends MessageType<ListDistinctValuesRequest> {\n    constructor() {\n        super(\"tusk.drift.query.v1.ListDistinctValuesRequest\", [\n            { no: 1, name: \"observable_service_id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 2, name: \"client_id\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ },\n            { no: 3, name: \"field\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 4, name: \"where\", kind: \"message\", T: () => WhereClause },\n            { no: 5, name: \"limit\", kind: \"scalar\", opt: true, T: 5 /*ScalarType.INT32*/ }\n        ]);\n    }\n    create(value?: PartialMessage<ListDistinctValuesRequest>): ListDistinctValuesRequest {\n        const message = globalThis.Object.create((this.messagePrototype!));\n        message.observableServiceId = \"\";\n        message.field = \"\";\n        if (value !== undefined)\n            reflectionMergePartial<ListDistinctValuesRequest>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListDistinctValuesRequest): ListDistinctValuesRequest {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* string observable_service_id */ 1:\n                    message.observableServiceId = reader.string();\n                    break;\n                case /* optional string client_id */ 2:\n                    message.clientId = reader.string();\n                    break;\n                case /* string field */ 3:\n                    message.field = reader.string();\n                    break;\n                case /* tusk.drift.query.v1.WhereClause where */ 4:\n                    message.where = WhereClause.internalBinaryRead(reader, reader.uint32(), options, message.where);\n                    break;\n                case /* optional int32 limit */ 5:\n                    message.limit = reader.int32();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: ListDistinctValuesRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* string observable_service_id = 1; */\n        if (message.observableServiceId !== \"\")\n            writer.tag(1, WireType.LengthDelimited).string(message.observableServiceId);\n        /* optional string client_id = 2; */\n        if (message.clientId !== undefined)\n            writer.tag(2, WireType.LengthDelimited).string(message.clientId);\n        /* string field = 3; */\n        if (message.field !== \"\")\n            writer.tag(3, WireType.LengthDelimited).string(message.field);\n        /* tusk.drift.query.v1.WhereClause where = 4; */\n        if (message.where)\n            WhereClause.internalBinaryWrite(message.where, writer.tag(4, WireType.LengthDelimited).fork(), options).join();\n        /* optional int32 limit = 5; */\n        if (message.limit !== undefined)\n            writer.tag(5, WireType.Varint).int32(message.limit);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message tusk.drift.query.v1.ListDistinctValuesRequest\n */\nexport const ListDistinctValuesRequest = new ListDistinctValuesRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass AggregateSpansRequest$Type extends MessageType<AggregateSpansRequest> {\n    constructor() {\n        super(\"tusk.drift.query.v1.AggregateSpansRequest\", [\n            { no: 1, name: \"observable_service_id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 2, name: \"client_id\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ },\n            { no: 3, name: \"where\", kind: \"message\", T: () => WhereClause },\n            { no: 4, name: \"group_by\", kind: \"enum\", repeat: 1 /*RepeatType.PACKED*/, T: () => [\"tusk.drift.query.v1.AggregateGroupField\", AggregateGroupField, \"AGGREGATE_GROUP_FIELD_\"] },\n            { no: 5, name: \"metrics\", kind: \"enum\", repeat: 1 /*RepeatType.PACKED*/, T: () => [\"tusk.drift.query.v1.AggregateMetric\", AggregateMetric, \"AGGREGATE_METRIC_\"] },\n            { no: 6, name: \"time_bucket\", kind: \"enum\", T: () => [\"tusk.drift.query.v1.TimeBucket\", TimeBucket, \"TIME_BUCKET_\"] },\n            { no: 7, name: \"order_by\", kind: \"message\", T: () => MetricOrderBy },\n            { no: 8, name: \"limit\", kind: \"scalar\", opt: true, T: 5 /*ScalarType.INT32*/ }\n        ]);\n    }\n    create(value?: PartialMessage<AggregateSpansRequest>): AggregateSpansRequest {\n        const message = globalThis.Object.create((this.messagePrototype!));\n        message.observableServiceId = \"\";\n        message.groupBy = [];\n        message.metrics = [];\n        message.timeBucket = 0;\n        if (value !== undefined)\n            reflectionMergePartial<AggregateSpansRequest>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AggregateSpansRequest): AggregateSpansRequest {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* string observable_service_id */ 1:\n                    message.observableServiceId = reader.string();\n                    break;\n                case /* optional string client_id */ 2:\n                    message.clientId = reader.string();\n                    break;\n                case /* tusk.drift.query.v1.WhereClause where */ 3:\n                    message.where = WhereClause.internalBinaryRead(reader, reader.uint32(), options, message.where);\n                    break;\n                case /* repeated tusk.drift.query.v1.AggregateGroupField group_by */ 4:\n                    if (wireType === WireType.LengthDelimited)\n                        for (let e = reader.int32() + reader.pos; reader.pos < e;)\n                            message.groupBy.push(reader.int32());\n                    else\n                        message.groupBy.push(reader.int32());\n                    break;\n                case /* repeated tusk.drift.query.v1.AggregateMetric metrics */ 5:\n                    if (wireType === WireType.LengthDelimited)\n                        for (let e = reader.int32() + reader.pos; reader.pos < e;)\n                            message.metrics.push(reader.int32());\n                    else\n                        message.metrics.push(reader.int32());\n                    break;\n                case /* tusk.drift.query.v1.TimeBucket time_bucket */ 6:\n                    message.timeBucket = reader.int32();\n                    break;\n                case /* tusk.drift.query.v1.MetricOrderBy order_by */ 7:\n                    message.orderBy = MetricOrderBy.internalBinaryRead(reader, reader.uint32(), options, message.orderBy);\n                    break;\n                case /* optional int32 limit */ 8:\n                    message.limit = reader.int32();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: AggregateSpansRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* string observable_service_id = 1; */\n        if (message.observableServiceId !== \"\")\n            writer.tag(1, WireType.LengthDelimited).string(message.observableServiceId);\n        /* optional string client_id = 2; */\n        if (message.clientId !== undefined)\n            writer.tag(2, WireType.LengthDelimited).string(message.clientId);\n        /* tusk.drift.query.v1.WhereClause where = 3; */\n        if (message.where)\n            WhereClause.internalBinaryWrite(message.where, writer.tag(3, WireType.LengthDelimited).fork(), options).join();\n        /* repeated tusk.drift.query.v1.AggregateGroupField group_by = 4; */\n        if (message.groupBy.length) {\n            writer.tag(4, WireType.LengthDelimited).fork();\n            for (let i = 0; i < message.groupBy.length; i++)\n                writer.int32(message.groupBy[i]);\n            writer.join();\n        }\n        /* repeated tusk.drift.query.v1.AggregateMetric metrics = 5; */\n        if (message.metrics.length) {\n            writer.tag(5, WireType.LengthDelimited).fork();\n            for (let i = 0; i < message.metrics.length; i++)\n                writer.int32(message.metrics[i]);\n            writer.join();\n        }\n        /* tusk.drift.query.v1.TimeBucket time_bucket = 6; */\n        if (message.timeBucket !== 0)\n            writer.tag(6, WireType.Varint).int32(message.timeBucket);\n        /* tusk.drift.query.v1.MetricOrderBy order_by = 7; */\n        if (message.orderBy)\n            MetricOrderBy.internalBinaryWrite(message.orderBy, writer.tag(7, WireType.LengthDelimited).fork(), options).join();\n        /* optional int32 limit = 8; */\n        if (message.limit !== undefined)\n            writer.tag(8, WireType.Varint).int32(message.limit);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message tusk.drift.query.v1.AggregateSpansRequest\n */\nexport const AggregateSpansRequest = new AggregateSpansRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass GetTraceSpansRequest$Type extends MessageType<GetTraceSpansRequest> {\n    constructor() {\n        super(\"tusk.drift.query.v1.GetTraceSpansRequest\", [\n            { no: 1, name: \"observable_service_id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 2, name: \"client_id\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ },\n            { no: 3, name: \"trace_id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 4, name: \"include_payloads\", kind: \"scalar\", opt: true, T: 8 /*ScalarType.BOOL*/ },\n            { no: 5, name: \"max_payload_length\", kind: \"scalar\", opt: true, T: 5 /*ScalarType.INT32*/ }\n        ]);\n    }\n    create(value?: PartialMessage<GetTraceSpansRequest>): GetTraceSpansRequest {\n        const message = globalThis.Object.create((this.messagePrototype!));\n        message.observableServiceId = \"\";\n        message.traceId = \"\";\n        if (value !== undefined)\n            reflectionMergePartial<GetTraceSpansRequest>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: GetTraceSpansRequest): GetTraceSpansRequest {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* string observable_service_id */ 1:\n                    message.observableServiceId = reader.string();\n                    break;\n                case /* optional string client_id */ 2:\n                    message.clientId = reader.string();\n                    break;\n                case /* string trace_id */ 3:\n                    message.traceId = reader.string();\n                    break;\n                case /* optional bool include_payloads */ 4:\n                    message.includePayloads = reader.bool();\n                    break;\n                case /* optional int32 max_payload_length */ 5:\n                    message.maxPayloadLength = reader.int32();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: GetTraceSpansRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* string observable_service_id = 1; */\n        if (message.observableServiceId !== \"\")\n            writer.tag(1, WireType.LengthDelimited).string(message.observableServiceId);\n        /* optional string client_id = 2; */\n        if (message.clientId !== undefined)\n            writer.tag(2, WireType.LengthDelimited).string(message.clientId);\n        /* string trace_id = 3; */\n        if (message.traceId !== \"\")\n            writer.tag(3, WireType.LengthDelimited).string(message.traceId);\n        /* optional bool include_payloads = 4; */\n        if (message.includePayloads !== undefined)\n            writer.tag(4, WireType.Varint).bool(message.includePayloads);\n        /* optional int32 max_payload_length = 5; */\n        if (message.maxPayloadLength !== undefined)\n            writer.tag(5, WireType.Varint).int32(message.maxPayloadLength);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message tusk.drift.query.v1.GetTraceSpansRequest\n */\nexport const GetTraceSpansRequest = new GetTraceSpansRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass GetSpansByIdsRequest$Type extends MessageType<GetSpansByIdsRequest> {\n    constructor() {\n        super(\"tusk.drift.query.v1.GetSpansByIdsRequest\", [\n            { no: 1, name: \"observable_service_id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 2, name: \"ids\", kind: \"scalar\", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ },\n            { no: 3, name: \"fields\", kind: \"enum\", repeat: 1 /*RepeatType.PACKED*/, T: () => [\"tusk.drift.query.v1.SelectableSpanField\", SelectableSpanField, \"SELECTABLE_SPAN_FIELD_\"] },\n            { no: 4, name: \"include_payloads\", kind: \"scalar\", opt: true, T: 8 /*ScalarType.BOOL*/ },\n            { no: 5, name: \"max_payload_length\", kind: \"scalar\", opt: true, T: 5 /*ScalarType.INT32*/ }\n        ]);\n    }\n    create(value?: PartialMessage<GetSpansByIdsRequest>): GetSpansByIdsRequest {\n        const message = globalThis.Object.create((this.messagePrototype!));\n        message.observableServiceId = \"\";\n        message.ids = [];\n        message.fields = [];\n        if (value !== undefined)\n            reflectionMergePartial<GetSpansByIdsRequest>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: GetSpansByIdsRequest): GetSpansByIdsRequest {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* string observable_service_id */ 1:\n                    message.observableServiceId = reader.string();\n                    break;\n                case /* repeated string ids */ 2:\n                    message.ids.push(reader.string());\n                    break;\n                case /* repeated tusk.drift.query.v1.SelectableSpanField fields */ 3:\n                    if (wireType === WireType.LengthDelimited)\n                        for (let e = reader.int32() + reader.pos; reader.pos < e;)\n                            message.fields.push(reader.int32());\n                    else\n                        message.fields.push(reader.int32());\n                    break;\n                case /* optional bool include_payloads */ 4:\n                    message.includePayloads = reader.bool();\n                    break;\n                case /* optional int32 max_payload_length */ 5:\n                    message.maxPayloadLength = reader.int32();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: GetSpansByIdsRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* string observable_service_id = 1; */\n        if (message.observableServiceId !== \"\")\n            writer.tag(1, WireType.LengthDelimited).string(message.observableServiceId);\n        /* repeated string ids = 2; */\n        for (let i = 0; i < message.ids.length; i++)\n            writer.tag(2, WireType.LengthDelimited).string(message.ids[i]);\n        /* repeated tusk.drift.query.v1.SelectableSpanField fields = 3; */\n        if (message.fields.length) {\n            writer.tag(3, WireType.LengthDelimited).fork();\n            for (let i = 0; i < message.fields.length; i++)\n                writer.int32(message.fields[i]);\n            writer.join();\n        }\n        /* optional bool include_payloads = 4; */\n        if (message.includePayloads !== undefined)\n            writer.tag(4, WireType.Varint).bool(message.includePayloads);\n        /* optional int32 max_payload_length = 5; */\n        if (message.maxPayloadLength !== undefined)\n            writer.tag(5, WireType.Varint).int32(message.maxPayloadLength);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message tusk.drift.query.v1.GetSpansByIdsRequest\n */\nexport const GetSpansByIdsRequest = new GetSpansByIdsRequest$Type();\n// @generated message type with reflection information, may provide speed optimized methods\nclass CompareSchemaRequest$Type extends MessageType<CompareSchemaRequest> {\n    constructor() {\n        super(\"tusk.drift.query.v1.CompareSchemaRequest\", [\n            { no: 1, name: \"observable_service_id\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 2, name: \"client_id\", kind: \"scalar\", opt: true, T: 9 /*ScalarType.STRING*/ },\n            { no: 3, name: \"name\", kind: \"scalar\", T: 9 /*ScalarType.STRING*/ },\n            { no: 4, name: \"period_a\", kind: \"message\", T: () => SchemaComparisonPeriod },\n            { no: 5, name: \"period_b\", kind: \"message\", T: () => SchemaComparisonPeriod },\n            { no: 6, name: \"include_payloads\", kind: \"scalar\", opt: true, T: 8 /*ScalarType.BOOL*/ },\n            { no: 7, name: \"max_payload_length\", kind: \"scalar\", opt: true, T: 5 /*ScalarType.INT32*/ }\n        ]);\n    }\n    create(value?: PartialMessage<CompareSchemaRequest>): CompareSchemaRequest {\n        const message = globalThis.Object.create((this.messagePrototype!));\n        message.observableServiceId = \"\";\n        message.name = \"\";\n        if (value !== undefined)\n            reflectionMergePartial<CompareSchemaRequest>(this, message, value);\n        return message;\n    }\n    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CompareSchemaRequest): CompareSchemaRequest {\n        let message = target ?? this.create(), end = reader.pos + length;\n        while (reader.pos < end) {\n            let [fieldNo, wireType] = reader.tag();\n            switch (fieldNo) {\n                case /* string observable_service_id */ 1:\n                    message.observableServiceId = reader.string();\n                    break;\n                case /* optional string client_id */ 2:\n                    message.clientId = reader.string();\n                    break;\n                case /* string name */ 3:\n                    message.name = reader.string();\n                    break;\n                case /* tusk.drift.query.v1.SchemaComparisonPeriod period_a */ 4:\n                    message.periodA = SchemaComparisonPeriod.internalBinaryRead(reader, reader.uint32(), options, message.periodA);\n                    break;\n                case /* tusk.drift.query.v1.SchemaComparisonPeriod period_b */ 5:\n                    message.periodB = SchemaComparisonPeriod.internalBinaryRead(reader, reader.uint32(), options, message.periodB);\n                    break;\n                case /* optional bool include_payloads */ 6:\n                    message.includePayloads = reader.bool();\n                    break;\n                case /* optional int32 max_payload_length */ 7:\n                    message.maxPayloadLength = reader.int32();\n                    break;\n                default:\n                    let u = options.readUnknownField;\n                    if (u === \"throw\")\n                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);\n                    let d = reader.skip(wireType);\n                    if (u !== false)\n                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);\n            }\n        }\n        return message;\n    }\n    internalBinaryWrite(message: CompareSchemaRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {\n        /* string observable_service_id = 1; */\n        if (message.observableServiceId !== \"\")\n            writer.tag(1, WireType.LengthDelimited).string(message.observableServiceId);\n        /* optional string client_id = 2; */\n        if (message.clientId !== undefined)\n            writer.tag(2, WireType.LengthDelimited).string(message.clientId);\n        /* string name = 3; */\n        if (message.name !== \"\")\n            writer.tag(3, WireType.LengthDelimited).string(message.name);\n        /* tusk.drift.query.v1.SchemaComparisonPeriod period_a = 4; */\n        if (message.periodA)\n            SchemaComparisonPeriod.internalBinaryWrite(message.periodA, writer.tag(4, WireType.LengthDelimited).fork(), options).join();\n        /* tusk.drift.query.v1.SchemaComparisonPeriod period_b = 5; */\n        if (message.periodB)\n            SchemaComparisonPeriod.internalBinaryWrite(message.periodB, writer.tag(5, WireType.LengthDelimited).fork(), options).join();\n        /* optional bool include_payloads = 6; */\n        if (message.includePayloads !== undefined)\n            writer.tag(6, WireType.Varint).bool(message.includePayloads);\n        /* optional int32 max_payload_length = 7; */\n        if (message.maxPayloadLength !== undefined)\n            writer.tag(7, WireType.Varint).int32(message.maxPayloadLength);\n        let u = options.writeUnknownFields;\n        if (u !== false)\n            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);\n        return writer;\n    }\n}\n/**\n * @generated MessageType for protobuf message tusk.drift.query.v1.CompareSchemaRequest\n */\nexport const CompareSchemaRequest = new CompareSchemaRequest$Type();\n"],"mappings":"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"}