@transcodely/sdk 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/gen/transcodely/v1/common_pb.ts","../src/gen/transcodely/v1/api_key_pb.ts","../src/gen/transcodely/v1/api_key_connect.ts","../src/pagination.ts","../src/resources/api-keys.ts","../src/gen/transcodely/v1/app_pb.ts","../src/gen/transcodely/v1/app_connect.ts","../src/resources/apps.ts","../src/gen/transcodely/v1/webhook_pb.ts","../src/gen/transcodely/v1/webhook_connect.ts","../src/codec/enum-transform.ts","../src/codec/json.ts","../src/gen/transcodely/v1/codec_h264_pb.ts","../src/gen/transcodely/v1/codec_h265_pb.ts","../src/gen/transcodely/v1/codec_vp9_pb.ts","../src/gen/transcodely/v1/codec_av1_pb.ts","../src/gen/transcodely/v1/hdr_pb.ts","../src/gen/transcodely/v1/streaming_pb.ts","../src/gen/transcodely/v1/subtitles_pb.ts","../src/gen/transcodely/v1/drm_pb.ts","../src/gen/transcodely/v1/content_aware_pb.ts","../src/gen/transcodely/v1/origin_pb.ts","../src/gen/transcodely/v1/media_pb.ts","../src/gen/transcodely/v1/thumbnails_pb.ts","../src/gen/transcodely/v1/job_pb.ts","../src/gen/transcodely/v1/video_pb.ts","../src/webhooks/types.ts","../src/resources/events.ts","../src/gen/transcodely/v1/health_pb.ts","../src/gen/transcodely/v1/health_connect.ts","../src/resources/health.ts","../src/gen/transcodely/v1/job_connect.ts","../src/errors.ts","../src/streaming.ts","../src/version.ts","../src/transport/headers.ts","../src/resources/jobs.ts","../src/gen/transcodely/v1/membership_pb.ts","../src/gen/transcodely/v1/membership_connect.ts","../src/resources/memberships.ts","../src/gen/transcodely/v1/organization_pb.ts","../src/gen/transcodely/v1/organization_connect.ts","../src/resources/organizations.ts","../src/gen/transcodely/v1/origin_connect.ts","../src/resources/origins.ts","../src/gen/transcodely/v1/preset_pb.ts","../src/gen/transcodely/v1/preset_connect.ts","../src/resources/presets.ts","../src/gen/transcodely/v1/user_pb.ts","../src/gen/transcodely/v1/user_connect.ts","../src/resources/users.ts","../src/gen/transcodely/v1/video_connect.ts","../src/resources/videos.ts","../src/resources/webhook-endpoints.ts","../src/transport/error-mapping.ts","../src/transport/transport.ts","../src/webhooks/signature.ts","../src/webhooks/construct-event.ts","../src/webhooks/index.ts","../src/client.ts"],"names":["VideoCodec","proto3","AudioCodec","Container","Resolution","QualityTier","OutputFormat","ContentType","DeliveryFormat","BitrateMode","Message","APIKeyEnvironment","Timestamp","MethodKind","AppStatus","HDRFormat","HDRMode","ToneMapping","HLSSegmentFormat","GOPAlignmentMode","HLSPlaylistType","SubtitleOperation","SubtitleFormat","DRMSystem","EncryptionScheme","ContentAwareMode","OriginProvider","R2Jurisdiction","OriginPermission","OriginStatus","protoInt64","ThumbnailMode","ThumbnailFormat","JobStatus","OutputStatus","JobPriority","WatchEventType","VideoStatus","VideoVisibility","HealthStatus","MembershipRole","MembershipStatus","OrganizationStatus","UserStatus","UserApprovalStatus","body","timingSafeEqual","createHmac"],"mappings":"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","file":"index.cjs","sourcesContent":["// Common types shared across services.\n\n// @generated by protoc-gen-es v1.10.0 with parameter \"target=ts,import_extension=.js\"\n// @generated from file transcodely/v1/common.proto (package transcodely.v1, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from \"@bufbuild/protobuf\";\nimport { Message, proto3 } from \"@bufbuild/protobuf\";\n\n/**\n * Video codec options.\n *\n * @generated from enum transcodely.v1.VideoCodec\n */\nexport enum VideoCodec {\n /**\n * @generated from enum value: VIDEO_CODEC_UNSPECIFIED = 0;\n */\n UNSPECIFIED = 0,\n\n /**\n * @generated from enum value: VIDEO_CODEC_H264 = 1;\n */\n H264 = 1,\n\n /**\n * @generated from enum value: VIDEO_CODEC_H265 = 2;\n */\n H265 = 2,\n\n /**\n * @generated from enum value: VIDEO_CODEC_VP9 = 3;\n */\n VP9 = 3,\n\n /**\n * @generated from enum value: VIDEO_CODEC_AV1 = 4;\n */\n AV1 = 4,\n}\n// Retrieve enum metadata with: proto3.getEnumType(VideoCodec)\nproto3.util.setEnumType(VideoCodec, \"transcodely.v1.VideoCodec\", [\n { no: 0, name: \"VIDEO_CODEC_UNSPECIFIED\" },\n { no: 1, name: \"VIDEO_CODEC_H264\" },\n { no: 2, name: \"VIDEO_CODEC_H265\" },\n { no: 3, name: \"VIDEO_CODEC_VP9\" },\n { no: 4, name: \"VIDEO_CODEC_AV1\" },\n]);\n\n/**\n * Audio codec options.\n *\n * @generated from enum transcodely.v1.AudioCodec\n */\nexport enum AudioCodec {\n /**\n * @generated from enum value: AUDIO_CODEC_UNSPECIFIED = 0;\n */\n UNSPECIFIED = 0,\n\n /**\n * @generated from enum value: AUDIO_CODEC_AAC = 1;\n */\n AAC = 1,\n\n /**\n * @generated from enum value: AUDIO_CODEC_OPUS = 2;\n */\n OPUS = 2,\n\n /**\n * @generated from enum value: AUDIO_CODEC_MP3 = 3;\n */\n MP3 = 3,\n}\n// Retrieve enum metadata with: proto3.getEnumType(AudioCodec)\nproto3.util.setEnumType(AudioCodec, \"transcodely.v1.AudioCodec\", [\n { no: 0, name: \"AUDIO_CODEC_UNSPECIFIED\" },\n { no: 1, name: \"AUDIO_CODEC_AAC\" },\n { no: 2, name: \"AUDIO_CODEC_OPUS\" },\n { no: 3, name: \"AUDIO_CODEC_MP3\" },\n]);\n\n/**\n * Container format options.\n *\n * @generated from enum transcodely.v1.Container\n */\nexport enum Container {\n /**\n * @generated from enum value: CONTAINER_UNSPECIFIED = 0;\n */\n UNSPECIFIED = 0,\n\n /**\n * @generated from enum value: CONTAINER_MP4 = 1;\n */\n MP4 = 1,\n\n /**\n * @generated from enum value: CONTAINER_WEBM = 2;\n */\n WEBM = 2,\n\n /**\n * @generated from enum value: CONTAINER_MKV = 3;\n */\n MKV = 3,\n\n /**\n * @generated from enum value: CONTAINER_TS = 4;\n */\n TS = 4,\n\n /**\n * @generated from enum value: CONTAINER_MOV = 5;\n */\n MOV = 5,\n}\n// Retrieve enum metadata with: proto3.getEnumType(Container)\nproto3.util.setEnumType(Container, \"transcodely.v1.Container\", [\n { no: 0, name: \"CONTAINER_UNSPECIFIED\" },\n { no: 1, name: \"CONTAINER_MP4\" },\n { no: 2, name: \"CONTAINER_WEBM\" },\n { no: 3, name: \"CONTAINER_MKV\" },\n { no: 4, name: \"CONTAINER_TS\" },\n { no: 5, name: \"CONTAINER_MOV\" },\n]);\n\n/**\n * Video resolution options.\n * These represent standard resolution tiers for pricing.\n * Custom dimensions are mapped to the nearest tier for pricing purposes.\n *\n * @generated from enum transcodely.v1.Resolution\n */\nexport enum Resolution {\n /**\n * @generated from enum value: RESOLUTION_UNSPECIFIED = 0;\n */\n RESOLUTION_UNSPECIFIED = 0,\n\n /**\n * SD: up to 480p (~307k pixels)\n *\n * @generated from enum value: RESOLUTION_480P = 1;\n */\n RESOLUTION_480P = 1,\n\n /**\n * HD: up to 720p (~922k pixels)\n *\n * @generated from enum value: RESOLUTION_720P = 2;\n */\n RESOLUTION_720P = 2,\n\n /**\n * Full HD: up to 1080p (~2.07M pixels)\n *\n * @generated from enum value: RESOLUTION_1080P = 3;\n */\n RESOLUTION_1080P = 3,\n\n /**\n * QHD: up to 1440p (~3.69M pixels)\n *\n * @generated from enum value: RESOLUTION_1440P = 4;\n */\n RESOLUTION_1440P = 4,\n\n /**\n * 4K UHD: up to 2160p (~8.29M pixels)\n *\n * @generated from enum value: RESOLUTION_2160P = 5;\n */\n RESOLUTION_2160P = 5,\n\n /**\n * 8K UHD: above 2160p\n *\n * @generated from enum value: RESOLUTION_4320P = 6;\n */\n RESOLUTION_4320P = 6,\n}\n// Retrieve enum metadata with: proto3.getEnumType(Resolution)\nproto3.util.setEnumType(Resolution, \"transcodely.v1.Resolution\", [\n { no: 0, name: \"RESOLUTION_UNSPECIFIED\" },\n { no: 1, name: \"RESOLUTION_480P\" },\n { no: 2, name: \"RESOLUTION_720P\" },\n { no: 3, name: \"RESOLUTION_1080P\" },\n { no: 4, name: \"RESOLUTION_1440P\" },\n { no: 5, name: \"RESOLUTION_2160P\" },\n { no: 6, name: \"RESOLUTION_4320P\" },\n]);\n\n/**\n * Quality tier affecting encoding speed and quality.\n *\n * @generated from enum transcodely.v1.QualityTier\n */\nexport enum QualityTier {\n /**\n * @generated from enum value: QUALITY_TIER_UNSPECIFIED = 0;\n */\n UNSPECIFIED = 0,\n\n /**\n * Fast encoding, good quality. Uses ultrafast/veryfast preset.\n * 0.75x price multiplier.\n *\n * @generated from enum value: QUALITY_TIER_ECONOMY = 1;\n */\n ECONOMY = 1,\n\n /**\n * Balanced speed and quality. Uses medium preset.\n * 1.0x price multiplier (baseline).\n *\n * @generated from enum value: QUALITY_TIER_STANDARD = 2;\n */\n STANDARD = 2,\n\n /**\n * Best quality, slower encoding. Uses slow/veryslow preset.\n * 2.0x price multiplier.\n *\n * @generated from enum value: QUALITY_TIER_PREMIUM = 3;\n */\n PREMIUM = 3,\n}\n// Retrieve enum metadata with: proto3.getEnumType(QualityTier)\nproto3.util.setEnumType(QualityTier, \"transcodely.v1.QualityTier\", [\n { no: 0, name: \"QUALITY_TIER_UNSPECIFIED\" },\n { no: 1, name: \"QUALITY_TIER_ECONOMY\" },\n { no: 2, name: \"QUALITY_TIER_STANDARD\" },\n { no: 3, name: \"QUALITY_TIER_PREMIUM\" },\n]);\n\n/**\n * Output type (container format or streaming type).\n * Note: \"format\" is renamed to \"type\" in v1 API, but the enum keeps the same name\n * for backward compatibility in proto.\n *\n * @generated from enum transcodely.v1.OutputFormat\n */\nexport enum OutputFormat {\n /**\n * @generated from enum value: OUTPUT_FORMAT_UNSPECIFIED = 0;\n */\n UNSPECIFIED = 0,\n\n /**\n * @generated from enum value: OUTPUT_FORMAT_MP4 = 1;\n */\n MP4 = 1,\n\n /**\n * @generated from enum value: OUTPUT_FORMAT_WEBM = 2;\n */\n WEBM = 2,\n\n /**\n * @generated from enum value: OUTPUT_FORMAT_MKV = 3;\n */\n MKV = 3,\n\n /**\n * @generated from enum value: OUTPUT_FORMAT_MOV = 4;\n */\n MOV = 4,\n\n /**\n * @generated from enum value: OUTPUT_FORMAT_HLS = 5;\n */\n HLS = 5,\n\n /**\n * @generated from enum value: OUTPUT_FORMAT_DASH = 6;\n */\n DASH = 6,\n\n /**\n * Combined HLS + DASH from shared CMAF segments.\n * Produces both master.m3u8 and manifest.mpd from the same fMP4 segments.\n *\n * @generated from enum value: OUTPUT_FORMAT_ADAPTIVE = 7;\n */\n ADAPTIVE = 7,\n}\n// Retrieve enum metadata with: proto3.getEnumType(OutputFormat)\nproto3.util.setEnumType(OutputFormat, \"transcodely.v1.OutputFormat\", [\n { no: 0, name: \"OUTPUT_FORMAT_UNSPECIFIED\" },\n { no: 1, name: \"OUTPUT_FORMAT_MP4\" },\n { no: 2, name: \"OUTPUT_FORMAT_WEBM\" },\n { no: 3, name: \"OUTPUT_FORMAT_MKV\" },\n { no: 4, name: \"OUTPUT_FORMAT_MOV\" },\n { no: 5, name: \"OUTPUT_FORMAT_HLS\" },\n { no: 6, name: \"OUTPUT_FORMAT_DASH\" },\n { no: 7, name: \"OUTPUT_FORMAT_ADAPTIVE\" },\n]);\n\n/**\n * Content type for optimizing encoder settings.\n *\n * @generated from enum transcodely.v1.ContentType\n */\nexport enum ContentType {\n /**\n * @generated from enum value: CONTENT_TYPE_UNSPECIFIED = 0;\n */\n UNSPECIFIED = 0,\n\n /**\n * Natural motion, fine detail (movies, TV shows)\n *\n * @generated from enum value: CONTENT_TYPE_FILM = 1;\n */\n FILM = 1,\n\n /**\n * Flat colors, sharp edges (anime, cartoons)\n *\n * @generated from enum value: CONTENT_TYPE_ANIMATION = 2;\n */\n ANIMATION = 2,\n\n /**\n * Preserve film grain texture (noir, vintage)\n *\n * @generated from enum value: CONTENT_TYPE_GRAIN = 3;\n */\n GRAIN = 3,\n\n /**\n * Fast motion, screen content (game recordings)\n *\n * @generated from enum value: CONTENT_TYPE_GAMING = 4;\n */\n GAMING = 4,\n\n /**\n * High motion, high framerate (live sports)\n *\n * @generated from enum value: CONTENT_TYPE_SPORTS = 5;\n */\n SPORTS = 5,\n\n /**\n * Mostly static frames (slideshows)\n *\n * @generated from enum value: CONTENT_TYPE_STILLIMAGE = 6;\n */\n STILLIMAGE = 6,\n}\n// Retrieve enum metadata with: proto3.getEnumType(ContentType)\nproto3.util.setEnumType(ContentType, \"transcodely.v1.ContentType\", [\n { no: 0, name: \"CONTENT_TYPE_UNSPECIFIED\" },\n { no: 1, name: \"CONTENT_TYPE_FILM\" },\n { no: 2, name: \"CONTENT_TYPE_ANIMATION\" },\n { no: 3, name: \"CONTENT_TYPE_GRAIN\" },\n { no: 4, name: \"CONTENT_TYPE_GAMING\" },\n { no: 5, name: \"CONTENT_TYPE_SPORTS\" },\n { no: 6, name: \"CONTENT_TYPE_STILLIMAGE\" },\n]);\n\n/**\n * Delivery format for output packaging.\n *\n * @generated from enum transcodely.v1.DeliveryFormat\n */\nexport enum DeliveryFormat {\n /**\n * @generated from enum value: DELIVERY_FORMAT_UNSPECIFIED = 0;\n */\n UNSPECIFIED = 0,\n\n /**\n * Direct download, simple playback\n *\n * @generated from enum value: DELIVERY_FORMAT_PROGRESSIVE = 1;\n */\n PROGRESSIVE = 1,\n\n /**\n * Adaptive streaming (Apple devices, web)\n *\n * @generated from enum value: DELIVERY_FORMAT_HLS = 2;\n */\n HLS = 2,\n\n /**\n * Adaptive streaming (Android, web)\n *\n * @generated from enum value: DELIVERY_FORMAT_DASH = 3;\n */\n DASH = 3,\n\n /**\n * Unified HLS+DASH (modern approach)\n *\n * @generated from enum value: DELIVERY_FORMAT_CMAF = 4;\n */\n CMAF = 4,\n}\n// Retrieve enum metadata with: proto3.getEnumType(DeliveryFormat)\nproto3.util.setEnumType(DeliveryFormat, \"transcodely.v1.DeliveryFormat\", [\n { no: 0, name: \"DELIVERY_FORMAT_UNSPECIFIED\" },\n { no: 1, name: \"DELIVERY_FORMAT_PROGRESSIVE\" },\n { no: 2, name: \"DELIVERY_FORMAT_HLS\" },\n { no: 3, name: \"DELIVERY_FORMAT_DASH\" },\n { no: 4, name: \"DELIVERY_FORMAT_CMAF\" },\n]);\n\n/**\n * Video bitrate control mode.\n *\n * @generated from enum transcodely.v1.BitrateMode\n */\nexport enum BitrateMode {\n /**\n * @generated from enum value: BITRATE_MODE_UNSPECIFIED = 0;\n */\n UNSPECIFIED = 0,\n\n /**\n * Constant Rate Factor (quality-based)\n *\n * @generated from enum value: BITRATE_MODE_CRF = 1;\n */\n CRF = 1,\n\n /**\n * Constant Bitrate\n *\n * @generated from enum value: BITRATE_MODE_CBR = 2;\n */\n CBR = 2,\n\n /**\n * Variable Bitrate\n *\n * @generated from enum value: BITRATE_MODE_VBR = 3;\n */\n VBR = 3,\n}\n// Retrieve enum metadata with: proto3.getEnumType(BitrateMode)\nproto3.util.setEnumType(BitrateMode, \"transcodely.v1.BitrateMode\", [\n { no: 0, name: \"BITRATE_MODE_UNSPECIFIED\" },\n { no: 1, name: \"BITRATE_MODE_CRF\" },\n { no: 2, name: \"BITRATE_MODE_CBR\" },\n { no: 3, name: \"BITRATE_MODE_VBR\" },\n]);\n\n/**\n * Pagination request parameters.\n *\n * @generated from message transcodely.v1.PaginationRequest\n */\nexport class PaginationRequest extends Message<PaginationRequest> {\n /**\n * Maximum number of items to return (default: 20, max: 100).\n *\n * @generated from field: int32 limit = 1;\n */\n limit = 0;\n\n /**\n * Pagination cursor from previous response.\n *\n * @generated from field: string cursor = 2;\n */\n cursor = \"\";\n\n /**\n * Offset for pagination (alternative to cursor).\n *\n * @generated from field: int32 offset = 3;\n */\n offset = 0;\n\n constructor(data?: PartialMessage<PaginationRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.PaginationRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"limit\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n { no: 2, name: \"cursor\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"offset\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): PaginationRequest {\n return new PaginationRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): PaginationRequest {\n return new PaginationRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): PaginationRequest {\n return new PaginationRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: PaginationRequest | PlainMessage<PaginationRequest> | undefined, b: PaginationRequest | PlainMessage<PaginationRequest> | undefined): boolean {\n return proto3.util.equals(PaginationRequest, a, b);\n }\n}\n\n/**\n * Pagination response metadata.\n *\n * @generated from message transcodely.v1.PaginationResponse\n */\nexport class PaginationResponse extends Message<PaginationResponse> {\n /**\n * Cursor for fetching the next page. Empty if no more pages.\n *\n * @generated from field: string next_cursor = 1;\n */\n nextCursor = \"\";\n\n /**\n * Total number of items (if available).\n *\n * @generated from field: optional int64 total_count = 2;\n */\n totalCount?: bigint;\n\n constructor(data?: PartialMessage<PaginationResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.PaginationResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"next_cursor\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"total_count\", kind: \"scalar\", T: 3 /* ScalarType.INT64 */, opt: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): PaginationResponse {\n return new PaginationResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): PaginationResponse {\n return new PaginationResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): PaginationResponse {\n return new PaginationResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: PaginationResponse | PlainMessage<PaginationResponse> | undefined, b: PaginationResponse | PlainMessage<PaginationResponse> | undefined): boolean {\n return proto3.util.equals(PaginationResponse, a, b);\n }\n}\n\n/**\n * Standard error details.\n *\n * @generated from message transcodely.v1.ErrorDetails\n */\nexport class ErrorDetails extends Message<ErrorDetails> {\n /**\n * Machine-readable error code.\n *\n * @generated from field: string code = 1;\n */\n code = \"\";\n\n /**\n * Human-readable error message.\n *\n * @generated from field: string message = 2;\n */\n message = \"\";\n\n /**\n * Field-specific validation errors.\n *\n * @generated from field: repeated transcodely.v1.FieldViolation field_violations = 3;\n */\n fieldViolations: FieldViolation[] = [];\n\n constructor(data?: PartialMessage<ErrorDetails>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.ErrorDetails\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"code\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"message\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"field_violations\", kind: \"message\", T: FieldViolation, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ErrorDetails {\n return new ErrorDetails().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ErrorDetails {\n return new ErrorDetails().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ErrorDetails {\n return new ErrorDetails().fromJsonString(jsonString, options);\n }\n\n static equals(a: ErrorDetails | PlainMessage<ErrorDetails> | undefined, b: ErrorDetails | PlainMessage<ErrorDetails> | undefined): boolean {\n return proto3.util.equals(ErrorDetails, a, b);\n }\n}\n\n/**\n * Field-level validation error.\n *\n * @generated from message transcodely.v1.FieldViolation\n */\nexport class FieldViolation extends Message<FieldViolation> {\n /**\n * Path to the field (e.g., \"input_url\" or \"outputs[0].codec\").\n *\n * @generated from field: string field = 1;\n */\n field = \"\";\n\n /**\n * Description of the violation.\n *\n * @generated from field: string description = 2;\n */\n description = \"\";\n\n constructor(data?: PartialMessage<FieldViolation>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.FieldViolation\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"field\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"description\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): FieldViolation {\n return new FieldViolation().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): FieldViolation {\n return new FieldViolation().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): FieldViolation {\n return new FieldViolation().fromJsonString(jsonString, options);\n }\n\n static equals(a: FieldViolation | PlainMessage<FieldViolation> | undefined, b: FieldViolation | PlainMessage<FieldViolation> | undefined): boolean {\n return proto3.util.equals(FieldViolation, a, b);\n }\n}\n\n","// API Key service for managing programmatic API access.\n\n// @generated by protoc-gen-es v1.10.0 with parameter \"target=ts,import_extension=.js\"\n// @generated from file transcodely/v1/api_key.proto (package transcodely.v1, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from \"@bufbuild/protobuf\";\nimport { Message, proto3, Timestamp } from \"@bufbuild/protobuf\";\nimport { PaginationRequest, PaginationResponse } from \"./common_pb.js\";\n\n/**\n * API key environment.\n *\n * @generated from enum transcodely.v1.APIKeyEnvironment\n */\nexport enum APIKeyEnvironment {\n /**\n * Default value, should not be used.\n *\n * @generated from enum value: API_KEY_ENVIRONMENT_UNSPECIFIED = 0;\n */\n API_KEY_ENVIRONMENT_UNSPECIFIED = 0,\n\n /**\n * Production environment (ak_live_...).\n *\n * @generated from enum value: API_KEY_ENVIRONMENT_LIVE = 1;\n */\n API_KEY_ENVIRONMENT_LIVE = 1,\n\n /**\n * Sandbox/development environment (ak_test_...).\n *\n * @generated from enum value: API_KEY_ENVIRONMENT_TEST = 2;\n */\n API_KEY_ENVIRONMENT_TEST = 2,\n}\n// Retrieve enum metadata with: proto3.getEnumType(APIKeyEnvironment)\nproto3.util.setEnumType(APIKeyEnvironment, \"transcodely.v1.APIKeyEnvironment\", [\n { no: 0, name: \"API_KEY_ENVIRONMENT_UNSPECIFIED\" },\n { no: 1, name: \"API_KEY_ENVIRONMENT_LIVE\" },\n { no: 2, name: \"API_KEY_ENVIRONMENT_TEST\" },\n]);\n\n/**\n * An API key for programmatic access.\n * Note: The actual secret is only returned during creation.\n *\n * @generated from message transcodely.v1.APIKey\n */\nexport class APIKey extends Message<APIKey> {\n /**\n * Unique API key identifier (e.g., \"ak_a1b2c3d4...\").\n *\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n /**\n * Human-readable name for the key.\n *\n * @generated from field: string name = 2;\n */\n name = \"\";\n\n /**\n * Optional description of the key's purpose.\n *\n * @generated from field: string description = 3;\n */\n description = \"\";\n\n /**\n * Key prefix for identification (e.g., \"ak_live_\" or \"ak_test_\").\n * Safe to display in logs and dashboards.\n *\n * @generated from field: string key_prefix = 4;\n */\n keyPrefix = \"\";\n\n /**\n * Last 4 characters of the key for identification.\n * Safe to display for customer support lookups.\n *\n * @generated from field: string key_hint = 5;\n */\n keyHint = \"\";\n\n /**\n * Environment the key is valid for.\n *\n * @generated from field: transcodely.v1.APIKeyEnvironment environment = 6;\n */\n environment = APIKeyEnvironment.API_KEY_ENVIRONMENT_UNSPECIFIED;\n\n /**\n * Permission scopes (empty means full access).\n * Future: granular permissions like \"jobs:read\", \"jobs:write\".\n *\n * @generated from field: repeated string scopes = 7;\n */\n scopes: string[] = [];\n\n /**\n * When the key was last used for authentication.\n *\n * @generated from field: optional google.protobuf.Timestamp last_used_at = 8;\n */\n lastUsedAt?: Timestamp;\n\n /**\n * When the key expires (null means never).\n *\n * @generated from field: optional google.protobuf.Timestamp expires_at = 9;\n */\n expiresAt?: Timestamp;\n\n /**\n * When the key was created.\n *\n * @generated from field: google.protobuf.Timestamp created_at = 10;\n */\n createdAt?: Timestamp;\n\n /**\n * Whether the key has been revoked.\n *\n * @generated from field: bool is_revoked = 11;\n */\n isRevoked = false;\n\n /**\n * When the key was revoked (if applicable).\n *\n * @generated from field: optional google.protobuf.Timestamp revoked_at = 12;\n */\n revokedAt?: Timestamp;\n\n constructor(data?: PartialMessage<APIKey>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.APIKey\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"description\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"key_prefix\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 5, name: \"key_hint\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 6, name: \"environment\", kind: \"enum\", T: proto3.getEnumType(APIKeyEnvironment) },\n { no: 7, name: \"scopes\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n { no: 8, name: \"last_used_at\", kind: \"message\", T: Timestamp, opt: true },\n { no: 9, name: \"expires_at\", kind: \"message\", T: Timestamp, opt: true },\n { no: 10, name: \"created_at\", kind: \"message\", T: Timestamp },\n { no: 11, name: \"is_revoked\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 12, name: \"revoked_at\", kind: \"message\", T: Timestamp, opt: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): APIKey {\n return new APIKey().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): APIKey {\n return new APIKey().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): APIKey {\n return new APIKey().fromJsonString(jsonString, options);\n }\n\n static equals(a: APIKey | PlainMessage<APIKey> | undefined, b: APIKey | PlainMessage<APIKey> | undefined): boolean {\n return proto3.util.equals(APIKey, a, b);\n }\n}\n\n/**\n * Request to create a new API key.\n *\n * @generated from message transcodely.v1.CreateAPIKeyRequest\n */\nexport class CreateAPIKeyRequest extends Message<CreateAPIKeyRequest> {\n /**\n * Human-readable name for the key (e.g., \"Production API Key\", \"CI/CD\").\n *\n * @generated from field: string name = 1;\n */\n name = \"\";\n\n /**\n * Optional description of the key's purpose.\n *\n * @generated from field: string description = 2;\n */\n description = \"\";\n\n /**\n * Environment for the key.\n *\n * @generated from field: transcodely.v1.APIKeyEnvironment environment = 3;\n */\n environment = APIKeyEnvironment.API_KEY_ENVIRONMENT_UNSPECIFIED;\n\n /**\n * Optional expiration time. Null means the key never expires.\n *\n * @generated from field: optional google.protobuf.Timestamp expires_at = 4;\n */\n expiresAt?: Timestamp;\n\n /**\n * App ID to create the key for.\n * Required when unauthenticated. Ignored when authenticated (uses the authenticated app).\n *\n * @generated from field: string app_id = 5;\n */\n appId = \"\";\n\n constructor(data?: PartialMessage<CreateAPIKeyRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.CreateAPIKeyRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"description\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"environment\", kind: \"enum\", T: proto3.getEnumType(APIKeyEnvironment) },\n { no: 4, name: \"expires_at\", kind: \"message\", T: Timestamp, opt: true },\n { no: 5, name: \"app_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CreateAPIKeyRequest {\n return new CreateAPIKeyRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CreateAPIKeyRequest {\n return new CreateAPIKeyRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CreateAPIKeyRequest {\n return new CreateAPIKeyRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: CreateAPIKeyRequest | PlainMessage<CreateAPIKeyRequest> | undefined, b: CreateAPIKeyRequest | PlainMessage<CreateAPIKeyRequest> | undefined): boolean {\n return proto3.util.equals(CreateAPIKeyRequest, a, b);\n }\n}\n\n/**\n * Response from creating an API key.\n *\n * @generated from message transcodely.v1.CreateAPIKeyResponse\n */\nexport class CreateAPIKeyResponse extends Message<CreateAPIKeyResponse> {\n /**\n * The created API key metadata.\n *\n * @generated from field: transcodely.v1.APIKey api_key = 1;\n */\n apiKey?: APIKey;\n\n /**\n * The full API key secret.\n * WARNING: This is the only time the secret is returned.\n * Store it securely - it cannot be retrieved again.\n *\n * @generated from field: string secret = 2;\n */\n secret = \"\";\n\n constructor(data?: PartialMessage<CreateAPIKeyResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.CreateAPIKeyResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"api_key\", kind: \"message\", T: APIKey },\n { no: 2, name: \"secret\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CreateAPIKeyResponse {\n return new CreateAPIKeyResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CreateAPIKeyResponse {\n return new CreateAPIKeyResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CreateAPIKeyResponse {\n return new CreateAPIKeyResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: CreateAPIKeyResponse | PlainMessage<CreateAPIKeyResponse> | undefined, b: CreateAPIKeyResponse | PlainMessage<CreateAPIKeyResponse> | undefined): boolean {\n return proto3.util.equals(CreateAPIKeyResponse, a, b);\n }\n}\n\n/**\n * Request to get an API key.\n *\n * @generated from message transcodely.v1.GetAPIKeyRequest\n */\nexport class GetAPIKeyRequest extends Message<GetAPIKeyRequest> {\n /**\n * ID of the API key to retrieve.\n *\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n constructor(data?: PartialMessage<GetAPIKeyRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.GetAPIKeyRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetAPIKeyRequest {\n return new GetAPIKeyRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetAPIKeyRequest {\n return new GetAPIKeyRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetAPIKeyRequest {\n return new GetAPIKeyRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: GetAPIKeyRequest | PlainMessage<GetAPIKeyRequest> | undefined, b: GetAPIKeyRequest | PlainMessage<GetAPIKeyRequest> | undefined): boolean {\n return proto3.util.equals(GetAPIKeyRequest, a, b);\n }\n}\n\n/**\n * Response from getting an API key.\n *\n * @generated from message transcodely.v1.GetAPIKeyResponse\n */\nexport class GetAPIKeyResponse extends Message<GetAPIKeyResponse> {\n /**\n * The requested API key.\n *\n * @generated from field: transcodely.v1.APIKey api_key = 1;\n */\n apiKey?: APIKey;\n\n constructor(data?: PartialMessage<GetAPIKeyResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.GetAPIKeyResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"api_key\", kind: \"message\", T: APIKey },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetAPIKeyResponse {\n return new GetAPIKeyResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetAPIKeyResponse {\n return new GetAPIKeyResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetAPIKeyResponse {\n return new GetAPIKeyResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: GetAPIKeyResponse | PlainMessage<GetAPIKeyResponse> | undefined, b: GetAPIKeyResponse | PlainMessage<GetAPIKeyResponse> | undefined): boolean {\n return proto3.util.equals(GetAPIKeyResponse, a, b);\n }\n}\n\n/**\n * Request to list API keys.\n *\n * @generated from message transcodely.v1.ListAPIKeysRequest\n */\nexport class ListAPIKeysRequest extends Message<ListAPIKeysRequest> {\n /**\n * Optional filter by environment.\n *\n * @generated from field: optional transcodely.v1.APIKeyEnvironment environment = 1;\n */\n environment?: APIKeyEnvironment;\n\n /**\n * If true, include revoked keys in the response.\n *\n * @generated from field: bool include_revoked = 2;\n */\n includeRevoked = false;\n\n /**\n * Pagination parameters.\n *\n * @generated from field: transcodely.v1.PaginationRequest pagination = 3;\n */\n pagination?: PaginationRequest;\n\n constructor(data?: PartialMessage<ListAPIKeysRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.ListAPIKeysRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"environment\", kind: \"enum\", T: proto3.getEnumType(APIKeyEnvironment), opt: true },\n { no: 2, name: \"include_revoked\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 3, name: \"pagination\", kind: \"message\", T: PaginationRequest },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListAPIKeysRequest {\n return new ListAPIKeysRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListAPIKeysRequest {\n return new ListAPIKeysRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListAPIKeysRequest {\n return new ListAPIKeysRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: ListAPIKeysRequest | PlainMessage<ListAPIKeysRequest> | undefined, b: ListAPIKeysRequest | PlainMessage<ListAPIKeysRequest> | undefined): boolean {\n return proto3.util.equals(ListAPIKeysRequest, a, b);\n }\n}\n\n/**\n * Response from listing API keys.\n *\n * @generated from message transcodely.v1.ListAPIKeysResponse\n */\nexport class ListAPIKeysResponse extends Message<ListAPIKeysResponse> {\n /**\n * List of API keys.\n *\n * @generated from field: repeated transcodely.v1.APIKey api_keys = 1;\n */\n apiKeys: APIKey[] = [];\n\n /**\n * Pagination metadata.\n *\n * @generated from field: transcodely.v1.PaginationResponse pagination = 2;\n */\n pagination?: PaginationResponse;\n\n constructor(data?: PartialMessage<ListAPIKeysResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.ListAPIKeysResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"api_keys\", kind: \"message\", T: APIKey, repeated: true },\n { no: 2, name: \"pagination\", kind: \"message\", T: PaginationResponse },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListAPIKeysResponse {\n return new ListAPIKeysResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListAPIKeysResponse {\n return new ListAPIKeysResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListAPIKeysResponse {\n return new ListAPIKeysResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: ListAPIKeysResponse | PlainMessage<ListAPIKeysResponse> | undefined, b: ListAPIKeysResponse | PlainMessage<ListAPIKeysResponse> | undefined): boolean {\n return proto3.util.equals(ListAPIKeysResponse, a, b);\n }\n}\n\n/**\n * Request to revoke an API key.\n *\n * @generated from message transcodely.v1.RevokeAPIKeyRequest\n */\nexport class RevokeAPIKeyRequest extends Message<RevokeAPIKeyRequest> {\n /**\n * ID of the API key to revoke.\n *\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n /**\n * Optional reason for revocation (for audit purposes).\n *\n * @generated from field: string reason = 2;\n */\n reason = \"\";\n\n constructor(data?: PartialMessage<RevokeAPIKeyRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.RevokeAPIKeyRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"reason\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): RevokeAPIKeyRequest {\n return new RevokeAPIKeyRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): RevokeAPIKeyRequest {\n return new RevokeAPIKeyRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): RevokeAPIKeyRequest {\n return new RevokeAPIKeyRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: RevokeAPIKeyRequest | PlainMessage<RevokeAPIKeyRequest> | undefined, b: RevokeAPIKeyRequest | PlainMessage<RevokeAPIKeyRequest> | undefined): boolean {\n return proto3.util.equals(RevokeAPIKeyRequest, a, b);\n }\n}\n\n/**\n * Response from revoking an API key.\n *\n * @generated from message transcodely.v1.RevokeAPIKeyResponse\n */\nexport class RevokeAPIKeyResponse extends Message<RevokeAPIKeyResponse> {\n /**\n * The revoked API key.\n *\n * @generated from field: transcodely.v1.APIKey api_key = 1;\n */\n apiKey?: APIKey;\n\n constructor(data?: PartialMessage<RevokeAPIKeyResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.RevokeAPIKeyResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"api_key\", kind: \"message\", T: APIKey },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): RevokeAPIKeyResponse {\n return new RevokeAPIKeyResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): RevokeAPIKeyResponse {\n return new RevokeAPIKeyResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): RevokeAPIKeyResponse {\n return new RevokeAPIKeyResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: RevokeAPIKeyResponse | PlainMessage<RevokeAPIKeyResponse> | undefined, b: RevokeAPIKeyResponse | PlainMessage<RevokeAPIKeyResponse> | undefined): boolean {\n return proto3.util.equals(RevokeAPIKeyResponse, a, b);\n }\n}\n\n","// API Key service for managing programmatic API access.\n\n// @generated by protoc-gen-connect-es v1.6.1 with parameter \"target=ts,import_extension=.js\"\n// @generated from file transcodely/v1/api_key.proto (package transcodely.v1, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport { CreateAPIKeyRequest, CreateAPIKeyResponse, GetAPIKeyRequest, GetAPIKeyResponse, ListAPIKeysRequest, ListAPIKeysResponse, RevokeAPIKeyRequest, RevokeAPIKeyResponse } from \"./api_key_pb.js\";\nimport { MethodKind } from \"@bufbuild/protobuf\";\n\n/**\n * APIKeyService manages API keys for programmatic access.\n *\n * @generated from service transcodely.v1.APIKeyService\n */\nexport const APIKeyService = {\n typeName: \"transcodely.v1.APIKeyService\",\n methods: {\n /**\n * Create a new API key.\n * The secret is only returned once in the response - store it securely.\n *\n * @generated from rpc transcodely.v1.APIKeyService.Create\n */\n create: {\n name: \"Create\",\n I: CreateAPIKeyRequest,\n O: CreateAPIKeyResponse,\n kind: MethodKind.Unary,\n },\n /**\n * Get an API key by ID.\n * Note: The secret is never returned after creation.\n *\n * @generated from rpc transcodely.v1.APIKeyService.Get\n */\n get: {\n name: \"Get\",\n I: GetAPIKeyRequest,\n O: GetAPIKeyResponse,\n kind: MethodKind.Unary,\n },\n /**\n * List API keys with optional filtering.\n *\n * @generated from rpc transcodely.v1.APIKeyService.List\n */\n list: {\n name: \"List\",\n I: ListAPIKeysRequest,\n O: ListAPIKeysResponse,\n kind: MethodKind.Unary,\n },\n /**\n * Revoke an API key.\n * Revoked keys cannot be used for authentication.\n *\n * @generated from rpc transcodely.v1.APIKeyService.Revoke\n */\n revoke: {\n name: \"Revoke\",\n I: RevokeAPIKeyRequest,\n O: RevokeAPIKeyResponse,\n kind: MethodKind.Unary,\n },\n }\n} as const;\n\n","/**\n * Cursor pagination helper. Every `list` method returns a `Page<T>` so callers\n * can either paginate manually or `.autoPage()` to iterate every result.\n *\n * @example\n * ```ts\n * for await (const job of client.jobs.list({ limit: 50 }).autoPage()) {\n * console.log(job.id);\n * }\n * ```\n *\n * Decoupled from the proto types so resources with non-standard pagination\n * (e.g. Video uses page_size/page_token instead of pagination.cursor) can\n * still expose the same surface.\n */\n\nexport interface PageContents<T> {\n items: T[];\n nextCursor: string | undefined;\n}\n\n/** Fetcher: given a cursor (undefined for the first page), return the next page. */\nexport type FetchPage<T> = (cursor: string | undefined) => Promise<PageContents<T>>;\n\n/**\n * Lazily-iterable page wrapper. Acts as both a sync container (await it for\n * the first page) and an async iterator over all items via `.autoPage()`.\n */\nexport class Page<T> implements PromiseLike<PageContents<T>> {\n private cached: Promise<PageContents<T>> | undefined;\n\n constructor(private readonly fetcher: FetchPage<T>) {}\n\n /** Fetch (or return cached) the first page. */\n fetch(): Promise<PageContents<T>> {\n if (!this.cached) this.cached = this.fetcher(undefined);\n return this.cached;\n }\n\n /** PromiseLike — `await page` resolves to the first page. */\n then<TResult1 = PageContents<T>, TResult2 = never>(\n onfulfilled?: ((value: PageContents<T>) => TResult1 | PromiseLike<TResult1>) | null,\n onrejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | null,\n ): PromiseLike<TResult1 | TResult2> {\n return this.fetch().then(onfulfilled ?? undefined, onrejected ?? undefined);\n }\n\n /** Iterate items across every page automatically. */\n async *autoPage(): AsyncIterableIterator<T> {\n let cursor: string | undefined;\n while (true) {\n const page = await this.fetcher(cursor);\n for (const item of page.items) yield item;\n if (!page.nextCursor) return;\n cursor = page.nextCursor;\n }\n }\n}\n","import type { PartialMessage } from \"@bufbuild/protobuf\";\n\nimport { APIKeyService } from \"../gen/transcodely/v1/api_key_connect.js\";\nimport {\n type APIKey,\n CreateAPIKeyRequest,\n GetAPIKeyRequest,\n ListAPIKeysRequest,\n RevokeAPIKeyRequest,\n} from \"../gen/transcodely/v1/api_key_pb.js\";\nimport { PaginationRequest } from \"../gen/transcodely/v1/common_pb.js\";\n\nimport { Page } from \"../pagination.js\";\nimport type { CallOptions, Transport } from \"../transport/transport.js\";\n\nexport class ApiKeys {\n constructor(private readonly transport: Transport) {}\n\n /** Returns the new API key — note `secret` is only available on the response, never refetched. */\n create(req: PartialMessage<CreateAPIKeyRequest>, opts?: CallOptions) {\n return this.transport.unary(\n APIKeyService,\n APIKeyService.methods.create,\n new CreateAPIKeyRequest(req),\n opts,\n );\n }\n\n async get(id: string, opts?: CallOptions): Promise<APIKey> {\n const res = await this.transport.unary(\n APIKeyService,\n APIKeyService.methods.get,\n new GetAPIKeyRequest({ id }),\n opts,\n );\n return res.apiKey!;\n }\n\n list(req: PartialMessage<ListAPIKeysRequest> = {}, opts?: CallOptions): Page<APIKey> {\n return new Page<APIKey>(async (cursor) => {\n const proto = new ListAPIKeysRequest(req);\n if (cursor !== undefined) {\n proto.pagination = new PaginationRequest({\n ...(req.pagination ?? {}),\n cursor,\n });\n }\n const res = await this.transport.unary(\n APIKeyService,\n APIKeyService.methods.list,\n proto,\n opts,\n );\n return { items: res.apiKeys, nextCursor: res.pagination?.nextCursor || undefined };\n });\n }\n\n async revoke(id: string, opts?: CallOptions): Promise<APIKey> {\n const res = await this.transport.unary(\n APIKeyService,\n APIKeyService.methods.revoke,\n new RevokeAPIKeyRequest({ id }),\n opts,\n );\n return res.apiKey!;\n }\n}\n","// App service for managing projects within organizations.\n\n// @generated by protoc-gen-es v1.10.0 with parameter \"target=ts,import_extension=.js\"\n// @generated from file transcodely/v1/app.proto (package transcodely.v1, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from \"@bufbuild/protobuf\";\nimport { Message, proto3, Timestamp } from \"@bufbuild/protobuf\";\nimport { PaginationRequest, PaginationResponse } from \"./common_pb.js\";\n\n/**\n * App status.\n *\n * @generated from enum transcodely.v1.AppStatus\n */\nexport enum AppStatus {\n /**\n * Default value, should not be used.\n *\n * @generated from enum value: APP_STATUS_UNSPECIFIED = 0;\n */\n UNSPECIFIED = 0,\n\n /**\n * Normal operation.\n *\n * @generated from enum value: APP_STATUS_ACTIVE = 1;\n */\n ACTIVE = 1,\n\n /**\n * Soft-deleted. No new resources allowed.\n *\n * @generated from enum value: APP_STATUS_ARCHIVED = 2;\n */\n ARCHIVED = 2,\n}\n// Retrieve enum metadata with: proto3.getEnumType(AppStatus)\nproto3.util.setEnumType(AppStatus, \"transcodely.v1.AppStatus\", [\n { no: 0, name: \"APP_STATUS_UNSPECIFIED\" },\n { no: 1, name: \"APP_STATUS_ACTIVE\" },\n { no: 2, name: \"APP_STATUS_ARCHIVED\" },\n]);\n\n/**\n * An app is a project within an organization.\n * Each app has its own API keys, jobs, origins, and webhook configuration.\n *\n * @generated from message transcodely.v1.App\n */\nexport class App extends Message<App> {\n /**\n * Unique app identifier (e.g., \"app_a1b2c3d4e5\").\n *\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n /**\n * Parent organization ID.\n *\n * @generated from field: string org_id = 2;\n */\n orgId = \"\";\n\n /**\n * Display name (any case, 1-60 characters).\n * Must be unique within the organization (case-insensitive).\n *\n * @generated from field: string name = 3;\n */\n name = \"\";\n\n /**\n * Optional description.\n *\n * @generated from field: optional string description = 4;\n */\n description?: string;\n\n /**\n * Webhook configuration.\n * Deprecated: Use WebhookService (webhook.proto) to manage webhook endpoints\n * instead. The new WebhookEndpoint resource supports multiple endpoints per\n * app, HMAC-SHA-256 signing with secret rotation, and per-event type\n * subscriptions. This field is retained for backwards compatibility;\n * field number 5 must never be reused.\n *\n * @generated from field: optional transcodely.v1.WebhookConfig webhook = 5;\n */\n webhook?: WebhookConfig;\n\n /**\n * App status.\n *\n * @generated from field: transcodely.v1.AppStatus status = 6;\n */\n status = AppStatus.UNSPECIFIED;\n\n /**\n * When the app was created.\n *\n * @generated from field: google.protobuf.Timestamp created_at = 7;\n */\n createdAt?: Timestamp;\n\n /**\n * When the app was last updated.\n *\n * @generated from field: google.protobuf.Timestamp updated_at = 8;\n */\n updatedAt?: Timestamp;\n\n /**\n * When the app was archived (if applicable).\n *\n * @generated from field: optional google.protobuf.Timestamp archived_at = 9;\n */\n archivedAt?: Timestamp;\n\n /**\n * True if hosting feature is enabled for this app.\n *\n * @generated from field: optional bool hosting_enabled = 10;\n */\n hostingEnabled?: boolean;\n\n /**\n * Hosting readiness: \"active\", \"provisioning\", or \"not_configured\".\n *\n * @generated from field: optional string hosting_status = 11;\n */\n hostingStatus?: string;\n\n /**\n * CDN hostname (e.g., \"transcodely-app-xxx.b-cdn.net\"). Only set when hosting is active.\n *\n * @generated from field: optional string cdn_hostname = 12;\n */\n cdnHostname?: string;\n\n /**\n * Hosting configuration (only set when hosting_enabled=true).\n *\n * @generated from field: optional transcodely.v1.HostingConfig hosting_config = 13;\n */\n hostingConfig?: HostingConfig;\n\n /**\n * Resource type discriminator. Always \"app\" for this message.\n * Lets webhook consumers and polyglot SDKs identify the resource without\n * out-of-band knowledge of the field name. Server-set; ignored on requests.\n *\n * @generated from field: string object = 14;\n */\n object = \"\";\n\n constructor(data?: PartialMessage<App>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.App\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"org_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"description\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 5, name: \"webhook\", kind: \"message\", T: WebhookConfig, opt: true },\n { no: 6, name: \"status\", kind: \"enum\", T: proto3.getEnumType(AppStatus) },\n { no: 7, name: \"created_at\", kind: \"message\", T: Timestamp },\n { no: 8, name: \"updated_at\", kind: \"message\", T: Timestamp },\n { no: 9, name: \"archived_at\", kind: \"message\", T: Timestamp, opt: true },\n { no: 10, name: \"hosting_enabled\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true },\n { no: 11, name: \"hosting_status\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 12, name: \"cdn_hostname\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 13, name: \"hosting_config\", kind: \"message\", T: HostingConfig, opt: true },\n { no: 14, name: \"object\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): App {\n return new App().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): App {\n return new App().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): App {\n return new App().fromJsonString(jsonString, options);\n }\n\n static equals(a: App | PlainMessage<App> | undefined, b: App | PlainMessage<App> | undefined): boolean {\n return proto3.util.equals(App, a, b);\n }\n}\n\n/**\n * Webhook configuration for an app.\n *\n * @generated from message transcodely.v1.WebhookConfig\n */\nexport class WebhookConfig extends Message<WebhookConfig> {\n /**\n * HTTPS endpoint for receiving webhooks.\n *\n * @generated from field: string url = 1;\n */\n url = \"\";\n\n /**\n * Secret for HMAC-SHA256 signature verification.\n * Only the last 4 characters are shown (hint).\n * Full secret is only returned when first configured.\n *\n * @generated from field: optional string secret_hint = 2;\n */\n secretHint?: string;\n\n /**\n * Whether a secret is configured.\n *\n * @generated from field: bool has_secret = 3;\n */\n hasSecret = false;\n\n /**\n * Events to send.\n * Possible values: job.completed, job.failed, job.progress, job.canceled,\n * output.completed, output.failed\n *\n * @generated from field: repeated string events = 4;\n */\n events: string[] = [];\n\n constructor(data?: PartialMessage<WebhookConfig>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.WebhookConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"secret_hint\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 3, name: \"has_secret\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 4, name: \"events\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): WebhookConfig {\n return new WebhookConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): WebhookConfig {\n return new WebhookConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): WebhookConfig {\n return new WebhookConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: WebhookConfig | PlainMessage<WebhookConfig> | undefined, b: WebhookConfig | PlainMessage<WebhookConfig> | undefined): boolean {\n return proto3.util.equals(WebhookConfig, a, b);\n }\n}\n\n/**\n * Request to create a new app.\n *\n * @generated from message transcodely.v1.CreateAppRequest\n */\nexport class CreateAppRequest extends Message<CreateAppRequest> {\n /**\n * Parent organization ID.\n *\n * @generated from field: string org_id = 1;\n */\n orgId = \"\";\n\n /**\n * Display name (any case, 1-60 characters).\n *\n * @generated from field: string name = 2;\n */\n name = \"\";\n\n /**\n * Optional description.\n *\n * @generated from field: optional string description = 3;\n */\n description?: string;\n\n /**\n * Optional webhook configuration.\n *\n * @generated from field: optional transcodely.v1.CreateWebhookConfig webhook = 4;\n */\n webhook?: CreateWebhookConfig;\n\n /**\n * Enable video hosting for this app. Provisions CDN infrastructure.\n * This cannot be disabled once enabled.\n *\n * @generated from field: optional bool enable_hosting = 5;\n */\n enableHosting?: boolean;\n\n constructor(data?: PartialMessage<CreateAppRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.CreateAppRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"org_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"description\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 4, name: \"webhook\", kind: \"message\", T: CreateWebhookConfig, opt: true },\n { no: 5, name: \"enable_hosting\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CreateAppRequest {\n return new CreateAppRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CreateAppRequest {\n return new CreateAppRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CreateAppRequest {\n return new CreateAppRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: CreateAppRequest | PlainMessage<CreateAppRequest> | undefined, b: CreateAppRequest | PlainMessage<CreateAppRequest> | undefined): boolean {\n return proto3.util.equals(CreateAppRequest, a, b);\n }\n}\n\n/**\n * Webhook configuration for app creation.\n *\n * @generated from message transcodely.v1.CreateWebhookConfig\n */\nexport class CreateWebhookConfig extends Message<CreateWebhookConfig> {\n /**\n * HTTPS endpoint for receiving webhooks.\n *\n * @generated from field: string url = 1;\n */\n url = \"\";\n\n /**\n * If true, a webhook secret will be generated.\n * The secret is returned once in the response.\n *\n * @generated from field: bool generate_secret = 2;\n */\n generateSecret = false;\n\n /**\n * Events to send.\n * Default: [\"job.completed\", \"job.failed\"] if not specified.\n *\n * @generated from field: repeated string events = 3;\n */\n events: string[] = [];\n\n constructor(data?: PartialMessage<CreateWebhookConfig>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.CreateWebhookConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"generate_secret\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 3, name: \"events\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CreateWebhookConfig {\n return new CreateWebhookConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CreateWebhookConfig {\n return new CreateWebhookConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CreateWebhookConfig {\n return new CreateWebhookConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: CreateWebhookConfig | PlainMessage<CreateWebhookConfig> | undefined, b: CreateWebhookConfig | PlainMessage<CreateWebhookConfig> | undefined): boolean {\n return proto3.util.equals(CreateWebhookConfig, a, b);\n }\n}\n\n/**\n * Response from creating an app.\n *\n * @generated from message transcodely.v1.CreateAppResponse\n */\nexport class CreateAppResponse extends Message<CreateAppResponse> {\n /**\n * The created app.\n *\n * @generated from field: transcodely.v1.App app = 1;\n */\n app?: App;\n\n /**\n * Webhook secret (only returned if generate_secret was true).\n * WARNING: This is the only time the secret is returned.\n *\n * @generated from field: optional string webhook_secret = 2;\n */\n webhookSecret?: string;\n\n constructor(data?: PartialMessage<CreateAppResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.CreateAppResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"app\", kind: \"message\", T: App },\n { no: 2, name: \"webhook_secret\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CreateAppResponse {\n return new CreateAppResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CreateAppResponse {\n return new CreateAppResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CreateAppResponse {\n return new CreateAppResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: CreateAppResponse | PlainMessage<CreateAppResponse> | undefined, b: CreateAppResponse | PlainMessage<CreateAppResponse> | undefined): boolean {\n return proto3.util.equals(CreateAppResponse, a, b);\n }\n}\n\n/**\n * Request to get an app.\n *\n * @generated from message transcodely.v1.GetAppRequest\n */\nexport class GetAppRequest extends Message<GetAppRequest> {\n /**\n * App ID.\n *\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n constructor(data?: PartialMessage<GetAppRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.GetAppRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetAppRequest {\n return new GetAppRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetAppRequest {\n return new GetAppRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetAppRequest {\n return new GetAppRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: GetAppRequest | PlainMessage<GetAppRequest> | undefined, b: GetAppRequest | PlainMessage<GetAppRequest> | undefined): boolean {\n return proto3.util.equals(GetAppRequest, a, b);\n }\n}\n\n/**\n * Response from getting an app.\n *\n * @generated from message transcodely.v1.GetAppResponse\n */\nexport class GetAppResponse extends Message<GetAppResponse> {\n /**\n * The requested app.\n *\n * @generated from field: transcodely.v1.App app = 1;\n */\n app?: App;\n\n constructor(data?: PartialMessage<GetAppResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.GetAppResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"app\", kind: \"message\", T: App },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetAppResponse {\n return new GetAppResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetAppResponse {\n return new GetAppResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetAppResponse {\n return new GetAppResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: GetAppResponse | PlainMessage<GetAppResponse> | undefined, b: GetAppResponse | PlainMessage<GetAppResponse> | undefined): boolean {\n return proto3.util.equals(GetAppResponse, a, b);\n }\n}\n\n/**\n * Request to update an app.\n *\n * @generated from message transcodely.v1.UpdateAppRequest\n */\nexport class UpdateAppRequest extends Message<UpdateAppRequest> {\n /**\n * App ID.\n *\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n /**\n * New display name (if provided).\n *\n * @generated from field: optional string name = 2;\n */\n name?: string;\n\n /**\n * New description (if provided).\n *\n * @generated from field: optional string description = 3;\n */\n description?: string;\n\n /**\n * New webhook configuration (if provided).\n * Set to empty message to clear webhook config.\n *\n * @generated from field: optional transcodely.v1.UpdateWebhookConfig webhook = 4;\n */\n webhook?: UpdateWebhookConfig;\n\n constructor(data?: PartialMessage<UpdateAppRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.UpdateAppRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 3, name: \"description\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 4, name: \"webhook\", kind: \"message\", T: UpdateWebhookConfig, opt: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): UpdateAppRequest {\n return new UpdateAppRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): UpdateAppRequest {\n return new UpdateAppRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): UpdateAppRequest {\n return new UpdateAppRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: UpdateAppRequest | PlainMessage<UpdateAppRequest> | undefined, b: UpdateAppRequest | PlainMessage<UpdateAppRequest> | undefined): boolean {\n return proto3.util.equals(UpdateAppRequest, a, b);\n }\n}\n\n/**\n * Webhook configuration for app update.\n *\n * @generated from message transcodely.v1.UpdateWebhookConfig\n */\nexport class UpdateWebhookConfig extends Message<UpdateWebhookConfig> {\n /**\n * New webhook URL. HTTPS only (same constraint as CreateWebhookConfig).\n * Set to empty string to disable webhooks.\n *\n * @generated from field: optional string url = 1;\n */\n url?: string;\n\n /**\n * If true, regenerate the webhook secret.\n * The new secret is returned in the response.\n *\n * @generated from field: bool regenerate_secret = 2;\n */\n regenerateSecret = false;\n\n /**\n * New events to send.\n * Only applied if explicitly provided.\n *\n * @generated from field: repeated string events = 3;\n */\n events: string[] = [];\n\n constructor(data?: PartialMessage<UpdateWebhookConfig>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.UpdateWebhookConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 2, name: \"regenerate_secret\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 3, name: \"events\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): UpdateWebhookConfig {\n return new UpdateWebhookConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): UpdateWebhookConfig {\n return new UpdateWebhookConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): UpdateWebhookConfig {\n return new UpdateWebhookConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: UpdateWebhookConfig | PlainMessage<UpdateWebhookConfig> | undefined, b: UpdateWebhookConfig | PlainMessage<UpdateWebhookConfig> | undefined): boolean {\n return proto3.util.equals(UpdateWebhookConfig, a, b);\n }\n}\n\n/**\n * Response from updating an app.\n *\n * @generated from message transcodely.v1.UpdateAppResponse\n */\nexport class UpdateAppResponse extends Message<UpdateAppResponse> {\n /**\n * The updated app.\n *\n * @generated from field: transcodely.v1.App app = 1;\n */\n app?: App;\n\n /**\n * New webhook secret (only returned if regenerate_secret was true).\n *\n * @generated from field: optional string webhook_secret = 2;\n */\n webhookSecret?: string;\n\n constructor(data?: PartialMessage<UpdateAppResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.UpdateAppResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"app\", kind: \"message\", T: App },\n { no: 2, name: \"webhook_secret\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): UpdateAppResponse {\n return new UpdateAppResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): UpdateAppResponse {\n return new UpdateAppResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): UpdateAppResponse {\n return new UpdateAppResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: UpdateAppResponse | PlainMessage<UpdateAppResponse> | undefined, b: UpdateAppResponse | PlainMessage<UpdateAppResponse> | undefined): boolean {\n return proto3.util.equals(UpdateAppResponse, a, b);\n }\n}\n\n/**\n * Request to list apps.\n *\n * @generated from message transcodely.v1.ListAppsRequest\n */\nexport class ListAppsRequest extends Message<ListAppsRequest> {\n /**\n * Parent organization ID.\n *\n * @generated from field: string org_id = 1;\n */\n orgId = \"\";\n\n /**\n * Pagination parameters.\n *\n * @generated from field: transcodely.v1.PaginationRequest pagination = 2;\n */\n pagination?: PaginationRequest;\n\n /**\n * If true, include archived apps.\n *\n * @generated from field: bool include_archived = 3;\n */\n includeArchived = false;\n\n constructor(data?: PartialMessage<ListAppsRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.ListAppsRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"org_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"pagination\", kind: \"message\", T: PaginationRequest },\n { no: 3, name: \"include_archived\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListAppsRequest {\n return new ListAppsRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListAppsRequest {\n return new ListAppsRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListAppsRequest {\n return new ListAppsRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: ListAppsRequest | PlainMessage<ListAppsRequest> | undefined, b: ListAppsRequest | PlainMessage<ListAppsRequest> | undefined): boolean {\n return proto3.util.equals(ListAppsRequest, a, b);\n }\n}\n\n/**\n * Response from listing apps.\n *\n * @generated from message transcodely.v1.ListAppsResponse\n */\nexport class ListAppsResponse extends Message<ListAppsResponse> {\n /**\n * List of apps.\n *\n * @generated from field: repeated transcodely.v1.App apps = 1;\n */\n apps: App[] = [];\n\n /**\n * Pagination metadata.\n *\n * @generated from field: transcodely.v1.PaginationResponse pagination = 2;\n */\n pagination?: PaginationResponse;\n\n constructor(data?: PartialMessage<ListAppsResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.ListAppsResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"apps\", kind: \"message\", T: App, repeated: true },\n { no: 2, name: \"pagination\", kind: \"message\", T: PaginationResponse },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListAppsResponse {\n return new ListAppsResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListAppsResponse {\n return new ListAppsResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListAppsResponse {\n return new ListAppsResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: ListAppsResponse | PlainMessage<ListAppsResponse> | undefined, b: ListAppsResponse | PlainMessage<ListAppsResponse> | undefined): boolean {\n return proto3.util.equals(ListAppsResponse, a, b);\n }\n}\n\n/**\n * Request to archive an app.\n *\n * @generated from message transcodely.v1.ArchiveAppRequest\n */\nexport class ArchiveAppRequest extends Message<ArchiveAppRequest> {\n /**\n * App ID.\n *\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n constructor(data?: PartialMessage<ArchiveAppRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.ArchiveAppRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ArchiveAppRequest {\n return new ArchiveAppRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ArchiveAppRequest {\n return new ArchiveAppRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ArchiveAppRequest {\n return new ArchiveAppRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: ArchiveAppRequest | PlainMessage<ArchiveAppRequest> | undefined, b: ArchiveAppRequest | PlainMessage<ArchiveAppRequest> | undefined): boolean {\n return proto3.util.equals(ArchiveAppRequest, a, b);\n }\n}\n\n/**\n * Response from archiving an app.\n *\n * @generated from message transcodely.v1.ArchiveAppResponse\n */\nexport class ArchiveAppResponse extends Message<ArchiveAppResponse> {\n /**\n * The archived app.\n *\n * @generated from field: transcodely.v1.App app = 1;\n */\n app?: App;\n\n constructor(data?: PartialMessage<ArchiveAppResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.ArchiveAppResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"app\", kind: \"message\", T: App },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ArchiveAppResponse {\n return new ArchiveAppResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ArchiveAppResponse {\n return new ArchiveAppResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ArchiveAppResponse {\n return new ArchiveAppResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: ArchiveAppResponse | PlainMessage<ArchiveAppResponse> | undefined, b: ArchiveAppResponse | PlainMessage<ArchiveAppResponse> | undefined): boolean {\n return proto3.util.equals(ArchiveAppResponse, a, b);\n }\n}\n\n/**\n * Request to enable video hosting for an app.\n *\n * @generated from message transcodely.v1.EnableHostingRequest\n */\nexport class EnableHostingRequest extends Message<EnableHostingRequest> {\n /**\n * App ID.\n *\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n constructor(data?: PartialMessage<EnableHostingRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.EnableHostingRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): EnableHostingRequest {\n return new EnableHostingRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): EnableHostingRequest {\n return new EnableHostingRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): EnableHostingRequest {\n return new EnableHostingRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: EnableHostingRequest | PlainMessage<EnableHostingRequest> | undefined, b: EnableHostingRequest | PlainMessage<EnableHostingRequest> | undefined): boolean {\n return proto3.util.equals(EnableHostingRequest, a, b);\n }\n}\n\n/**\n * Response from enabling hosting.\n *\n * @generated from message transcodely.v1.EnableHostingResponse\n */\nexport class EnableHostingResponse extends Message<EnableHostingResponse> {\n /**\n * The updated app with hosting_enabled=true.\n *\n * @generated from field: transcodely.v1.App app = 1;\n */\n app?: App;\n\n constructor(data?: PartialMessage<EnableHostingResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.EnableHostingResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"app\", kind: \"message\", T: App },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): EnableHostingResponse {\n return new EnableHostingResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): EnableHostingResponse {\n return new EnableHostingResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): EnableHostingResponse {\n return new EnableHostingResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: EnableHostingResponse | PlainMessage<EnableHostingResponse> | undefined, b: EnableHostingResponse | PlainMessage<EnableHostingResponse> | undefined): boolean {\n return proto3.util.equals(EnableHostingResponse, a, b);\n }\n}\n\n/**\n * Hosting configuration for an app.\n * Controls CDN delivery, upload limits, and auto-transcoding defaults.\n *\n * @generated from message transcodely.v1.HostingConfig\n */\nexport class HostingConfig extends Message<HostingConfig> {\n /**\n * Default visibility for new uploads: \"public\", \"unlisted\", or \"private\".\n *\n * @generated from field: optional string default_visibility = 1;\n */\n defaultVisibility?: string;\n\n /**\n * Max upload file size in bytes (0 = no limit).\n *\n * @generated from field: optional int64 max_upload_size_bytes = 2;\n */\n maxUploadSizeBytes?: bigint;\n\n /**\n * CORS allowed origins for CDN delivery.\n * These are the domains that can embed/fetch videos from the CDN.\n * System defaults (player base URL) are always included automatically.\n *\n * @generated from field: repeated string cors_allowed_origins = 3;\n */\n corsAllowedOrigins: string[] = [];\n\n /**\n * Auto-transcoding defaults when no preset is specified.\n *\n * @generated from field: optional transcodely.v1.AutoProfileDefaults auto_profile_defaults = 4;\n */\n autoProfileDefaults?: AutoProfileDefaults;\n\n constructor(data?: PartialMessage<HostingConfig>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.HostingConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"default_visibility\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 2, name: \"max_upload_size_bytes\", kind: \"scalar\", T: 3 /* ScalarType.INT64 */, opt: true },\n { no: 3, name: \"cors_allowed_origins\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n { no: 4, name: \"auto_profile_defaults\", kind: \"message\", T: AutoProfileDefaults, opt: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): HostingConfig {\n return new HostingConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): HostingConfig {\n return new HostingConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): HostingConfig {\n return new HostingConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: HostingConfig | PlainMessage<HostingConfig> | undefined, b: HostingConfig | PlainMessage<HostingConfig> | undefined): boolean {\n return proto3.util.equals(HostingConfig, a, b);\n }\n}\n\n/**\n * Default transcoding settings when no preset is specified on upload.\n *\n * @generated from message transcodely.v1.AutoProfileDefaults\n */\nexport class AutoProfileDefaults extends Message<AutoProfileDefaults> {\n /**\n * Output format: \"hls\", \"dash\", or \"mp4\".\n *\n * @generated from field: optional string format = 1;\n */\n format?: string;\n\n /**\n * Video codec: \"h264\", \"h265\", \"vp9\", or \"av1\".\n *\n * @generated from field: optional string codec = 2;\n */\n codec?: string;\n\n /**\n * Maximum output resolution: \"480p\", \"720p\", \"1080p\", \"1440p\", or \"2160p\".\n *\n * @generated from field: optional string max_resolution = 3;\n */\n maxResolution?: string;\n\n /**\n * Quality tier: \"economy\", \"standard\", or \"premium\".\n *\n * @generated from field: optional string quality_tier = 4;\n */\n qualityTier?: string;\n\n /**\n * Encoding mode: \"fixed\" (default, static CRF) or \"auto\" (input-aware constrained CRF).\n * In \"auto\" mode, the worker caps each variant's bitrate based on the input's bitrate\n * and resolution ratio, preventing output from exceeding the input's quality ceiling.\n *\n * @generated from field: optional string encoding_mode = 5;\n */\n encodingMode?: string;\n\n constructor(data?: PartialMessage<AutoProfileDefaults>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.AutoProfileDefaults\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"format\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 2, name: \"codec\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 3, name: \"max_resolution\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 4, name: \"quality_tier\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 5, name: \"encoding_mode\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): AutoProfileDefaults {\n return new AutoProfileDefaults().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): AutoProfileDefaults {\n return new AutoProfileDefaults().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): AutoProfileDefaults {\n return new AutoProfileDefaults().fromJsonString(jsonString, options);\n }\n\n static equals(a: AutoProfileDefaults | PlainMessage<AutoProfileDefaults> | undefined, b: AutoProfileDefaults | PlainMessage<AutoProfileDefaults> | undefined): boolean {\n return proto3.util.equals(AutoProfileDefaults, a, b);\n }\n}\n\n/**\n * Request to update hosting configuration for an app.\n *\n * @generated from message transcodely.v1.UpdateHostingConfigRequest\n */\nexport class UpdateHostingConfigRequest extends Message<UpdateHostingConfigRequest> {\n /**\n * App ID.\n *\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n /**\n * Hosting configuration to merge.\n *\n * @generated from field: transcodely.v1.HostingConfig hosting_config = 2;\n */\n hostingConfig?: HostingConfig;\n\n constructor(data?: PartialMessage<UpdateHostingConfigRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.UpdateHostingConfigRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"hosting_config\", kind: \"message\", T: HostingConfig },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): UpdateHostingConfigRequest {\n return new UpdateHostingConfigRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): UpdateHostingConfigRequest {\n return new UpdateHostingConfigRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): UpdateHostingConfigRequest {\n return new UpdateHostingConfigRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: UpdateHostingConfigRequest | PlainMessage<UpdateHostingConfigRequest> | undefined, b: UpdateHostingConfigRequest | PlainMessage<UpdateHostingConfigRequest> | undefined): boolean {\n return proto3.util.equals(UpdateHostingConfigRequest, a, b);\n }\n}\n\n/**\n * Response from updating hosting configuration.\n *\n * @generated from message transcodely.v1.UpdateHostingConfigResponse\n */\nexport class UpdateHostingConfigResponse extends Message<UpdateHostingConfigResponse> {\n /**\n * The updated app with merged hosting config.\n *\n * @generated from field: transcodely.v1.App app = 1;\n */\n app?: App;\n\n constructor(data?: PartialMessage<UpdateHostingConfigResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.UpdateHostingConfigResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"app\", kind: \"message\", T: App },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): UpdateHostingConfigResponse {\n return new UpdateHostingConfigResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): UpdateHostingConfigResponse {\n return new UpdateHostingConfigResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): UpdateHostingConfigResponse {\n return new UpdateHostingConfigResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: UpdateHostingConfigResponse | PlainMessage<UpdateHostingConfigResponse> | undefined, b: UpdateHostingConfigResponse | PlainMessage<UpdateHostingConfigResponse> | undefined): boolean {\n return proto3.util.equals(UpdateHostingConfigResponse, a, b);\n }\n}\n\n","// App service for managing projects within organizations.\n\n// @generated by protoc-gen-connect-es v1.6.1 with parameter \"target=ts,import_extension=.js\"\n// @generated from file transcodely/v1/app.proto (package transcodely.v1, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ArchiveAppRequest, ArchiveAppResponse, CreateAppRequest, CreateAppResponse, EnableHostingRequest, EnableHostingResponse, GetAppRequest, GetAppResponse, ListAppsRequest, ListAppsResponse, UpdateAppRequest, UpdateAppResponse, UpdateHostingConfigRequest, UpdateHostingConfigResponse } from \"./app_pb.js\";\nimport { MethodKind } from \"@bufbuild/protobuf\";\n\n/**\n * AppService manages apps (projects) within organizations.\n *\n * @generated from service transcodely.v1.AppService\n */\nexport const AppService = {\n typeName: \"transcodely.v1.AppService\",\n methods: {\n /**\n * Create a new app within an organization.\n *\n * @generated from rpc transcodely.v1.AppService.Create\n */\n create: {\n name: \"Create\",\n I: CreateAppRequest,\n O: CreateAppResponse,\n kind: MethodKind.Unary,\n },\n /**\n * Get an app by ID.\n *\n * @generated from rpc transcodely.v1.AppService.Get\n */\n get: {\n name: \"Get\",\n I: GetAppRequest,\n O: GetAppResponse,\n kind: MethodKind.Unary,\n },\n /**\n * Update an app's name, description, and webhook configuration.\n *\n * @generated from rpc transcodely.v1.AppService.Update\n */\n update: {\n name: \"Update\",\n I: UpdateAppRequest,\n O: UpdateAppResponse,\n kind: MethodKind.Unary,\n },\n /**\n * List apps within an organization.\n *\n * @generated from rpc transcodely.v1.AppService.List\n */\n list: {\n name: \"List\",\n I: ListAppsRequest,\n O: ListAppsResponse,\n kind: MethodKind.Unary,\n },\n /**\n * Archive an app (soft delete).\n * Archived apps cannot create new resources, but existing jobs continue.\n *\n * @generated from rpc transcodely.v1.AppService.Archive\n */\n archive: {\n name: \"Archive\",\n I: ArchiveAppRequest,\n O: ArchiveAppResponse,\n kind: MethodKind.Unary,\n },\n /**\n * Enable video hosting for an app.\n * This is a one-way operation — once enabled, hosting cannot be disabled.\n * Provisions managed storage bucket and prepares CDN infrastructure.\n *\n * @generated from rpc transcodely.v1.AppService.EnableHosting\n */\n enableHosting: {\n name: \"EnableHosting\",\n I: EnableHostingRequest,\n O: EnableHostingResponse,\n kind: MethodKind.Unary,\n },\n /**\n * Update hosting configuration for an app.\n * Merges provided fields into the existing hosting config.\n * Returns failed_precondition if hosting is not enabled.\n *\n * @generated from rpc transcodely.v1.AppService.UpdateHostingConfig\n */\n updateHostingConfig: {\n name: \"UpdateHostingConfig\",\n I: UpdateHostingConfigRequest,\n O: UpdateHostingConfigResponse,\n kind: MethodKind.Unary,\n },\n }\n} as const;\n\n","import type { PartialMessage } from \"@bufbuild/protobuf\";\n\nimport { AppService } from \"../gen/transcodely/v1/app_connect.js\";\nimport {\n type App,\n ArchiveAppRequest,\n CreateAppRequest,\n EnableHostingRequest,\n GetAppRequest,\n ListAppsRequest,\n UpdateAppRequest,\n UpdateHostingConfigRequest,\n} from \"../gen/transcodely/v1/app_pb.js\";\nimport { PaginationRequest } from \"../gen/transcodely/v1/common_pb.js\";\n\nimport { Page } from \"../pagination.js\";\nimport type { CallOptions, Transport } from \"../transport/transport.js\";\n\nexport class Apps {\n constructor(private readonly transport: Transport) {}\n\n async create(req: PartialMessage<CreateAppRequest>, opts?: CallOptions): Promise<App> {\n const res = await this.transport.unary(\n AppService,\n AppService.methods.create,\n new CreateAppRequest(req),\n opts,\n );\n return res.app!;\n }\n\n async get(id: string, opts?: CallOptions): Promise<App> {\n const res = await this.transport.unary(\n AppService,\n AppService.methods.get,\n new GetAppRequest({ id }),\n opts,\n );\n return res.app!;\n }\n\n async update(req: PartialMessage<UpdateAppRequest>, opts?: CallOptions): Promise<App> {\n const res = await this.transport.unary(\n AppService,\n AppService.methods.update,\n new UpdateAppRequest(req),\n opts,\n );\n return res.app!;\n }\n\n list(req: PartialMessage<ListAppsRequest> = {}, opts?: CallOptions): Page<App> {\n return new Page<App>(async (cursor) => {\n const proto = new ListAppsRequest(req);\n if (cursor !== undefined) {\n proto.pagination = new PaginationRequest({\n ...(req.pagination ?? {}),\n cursor,\n });\n }\n const res = await this.transport.unary(\n AppService,\n AppService.methods.list,\n proto,\n opts,\n );\n return { items: res.apps, nextCursor: res.pagination?.nextCursor || undefined };\n });\n }\n\n async archive(id: string, opts?: CallOptions): Promise<App> {\n const res = await this.transport.unary(\n AppService,\n AppService.methods.archive,\n new ArchiveAppRequest({ id }),\n opts,\n );\n return res.app!;\n }\n\n enableHosting(req: PartialMessage<EnableHostingRequest>, opts?: CallOptions) {\n return this.transport.unary(\n AppService,\n AppService.methods.enableHosting,\n new EnableHostingRequest(req),\n opts,\n );\n }\n\n updateHostingConfig(req: PartialMessage<UpdateHostingConfigRequest>, opts?: CallOptions) {\n return this.transport.unary(\n AppService,\n AppService.methods.updateHostingConfig,\n new UpdateHostingConfigRequest(req),\n opts,\n );\n }\n}\n","// Webhook service — signed HTTPS event delivery (Stripe-parity).\n\n// @generated by protoc-gen-es v1.10.0 with parameter \"target=ts,import_extension=.js\"\n// @generated from file transcodely/v1/webhook.proto (package transcodely.v1, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from \"@bufbuild/protobuf\";\nimport { Message, proto3, Timestamp } from \"@bufbuild/protobuf\";\nimport { PaginationRequest, PaginationResponse } from \"./common_pb.js\";\n\n/**\n * A registered HTTPS endpoint that receives signed webhook events.\n *\n * @generated from message transcodely.v1.WebhookEndpoint\n */\nexport class WebhookEndpoint extends Message<WebhookEndpoint> {\n /**\n * Unique identifier (e.g., \"whe_a1b2c3d4e5f6\").\n *\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n /**\n * Parent app ID.\n *\n * @generated from field: string app_id = 2;\n */\n appId = \"\";\n\n /**\n * HTTPS URL that receives signed POST requests.\n *\n * @generated from field: string url = 3;\n */\n url = \"\";\n\n /**\n * Optional human-readable description.\n *\n * @generated from field: optional string description = 4;\n */\n description?: string;\n\n /**\n * Event types this endpoint subscribes to.\n * Use \"*\" to subscribe to all event types.\n * Possible values: \"job.created\", \"job.updated\", \"job.succeeded\",\n * \"job.failed\", \"job.canceled\", \"job.progress\", \"output.created\",\n * \"output.ready\", \"output.failed\", \"output.progress\",\n * \"video.uploaded\", \"video.deleted\", \"app.created\", \"app.updated\", or \"*\".\n *\n * @generated from field: repeated string enabled_events = 5;\n */\n enabledEvents: string[] = [];\n\n /**\n * Operational status: \"enabled\" or \"disabled\".\n * Wire value is lowercase per project convention.\n *\n * @generated from field: string status = 6;\n */\n status = \"\";\n\n /**\n * API version this endpoint receives events for (e.g., \"2024-01-01\").\n * Defaults to the app's current API version at creation time.\n *\n * @generated from field: optional string api_version = 7;\n */\n apiVersion?: string;\n\n /**\n * Arbitrary key-value metadata.\n *\n * @generated from field: map<string, string> metadata = 8;\n */\n metadata: { [key: string]: string } = {};\n\n /**\n * When the endpoint was created.\n *\n * @generated from field: google.protobuf.Timestamp created_at = 9;\n */\n createdAt?: Timestamp;\n\n /**\n * When the endpoint was last updated.\n *\n * @generated from field: google.protobuf.Timestamp updated_at = 10;\n */\n updatedAt?: Timestamp;\n\n /**\n * Plain-text signing secret (whsec_...).\n * WARNING: Only populated by CreateWebhookEndpoint and RotateWebhookSecret.\n * All other RPCs return this field absent. Store it securely on receipt.\n *\n * @generated from field: optional string secret = 11;\n */\n secret?: string;\n\n /**\n * Reason the endpoint is in `status: \"disabled\"`. Absent when status is \"enabled\".\n * One of:\n * \"manual\" — operator paused via UpdateWebhookEndpoint\n * \"auto_failures\" — scheduler tripped after 10 consecutive terminal failures\n * spanning ≥72 h\n * Wire value is lowercase per project convention.\n *\n * @generated from field: optional string disabled_reason = 12;\n */\n disabledReason?: string;\n\n /**\n * When the signing secret was last rotated. Absent on endpoints that have\n * never been rotated (initial creation does not count as a rotation).\n *\n * @generated from field: optional google.protobuf.Timestamp last_rotated_at = 13;\n */\n lastRotatedAt?: Timestamp;\n\n /**\n * When the previous signing secret stops being accepted for incoming\n * verification during the 24 h rotation overlap window. Set to\n * `last_rotated_at + 24h` on rotation; absent once the overlap closes\n * or when no rotation has happened yet.\n *\n * @generated from field: optional google.protobuf.Timestamp previous_secret_expires_at = 14;\n */\n previousSecretExpiresAt?: Timestamp;\n\n constructor(data?: PartialMessage<WebhookEndpoint>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.WebhookEndpoint\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"app_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"description\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 5, name: \"enabled_events\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n { no: 6, name: \"status\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 7, name: \"api_version\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 8, name: \"metadata\", kind: \"map\", K: 9 /* ScalarType.STRING */, V: {kind: \"scalar\", T: 9 /* ScalarType.STRING */} },\n { no: 9, name: \"created_at\", kind: \"message\", T: Timestamp },\n { no: 10, name: \"updated_at\", kind: \"message\", T: Timestamp },\n { no: 11, name: \"secret\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 12, name: \"disabled_reason\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 13, name: \"last_rotated_at\", kind: \"message\", T: Timestamp, opt: true },\n { no: 14, name: \"previous_secret_expires_at\", kind: \"message\", T: Timestamp, opt: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): WebhookEndpoint {\n return new WebhookEndpoint().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): WebhookEndpoint {\n return new WebhookEndpoint().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): WebhookEndpoint {\n return new WebhookEndpoint().fromJsonString(jsonString, options);\n }\n\n static equals(a: WebhookEndpoint | PlainMessage<WebhookEndpoint> | undefined, b: WebhookEndpoint | PlainMessage<WebhookEndpoint> | undefined): boolean {\n return proto3.util.equals(WebhookEndpoint, a, b);\n }\n}\n\n/**\n * An immutable record of a platform event emitted for an app.\n *\n * @generated from message transcodely.v1.Event\n */\nexport class Event extends Message<Event> {\n /**\n * Unique identifier (e.g., \"evt_a1b2c3d4e5f6g7h8\").\n *\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n /**\n * Parent app ID.\n *\n * @generated from field: string app_id = 2;\n */\n appId = \"\";\n\n /**\n * Event type, snake_case lowercase (e.g., \"job.succeeded\", \"video.uploaded\").\n *\n * @generated from field: string type = 3;\n */\n type = \"\";\n\n /**\n * JSON-encoded snapshot of the resource at the time the event fired.\n * Shape matches the API response for the resource: snake_case field names,\n * lowercase enum strings on the wire (project convention).\n *\n * @generated from field: string data = 4;\n */\n data = \"\";\n\n /**\n * Request ID of the API call that triggered this event, for distributed tracing.\n *\n * @generated from field: optional string request_id = 5;\n */\n requestId?: string;\n\n /**\n * Number of delivery attempts still in pending state across all subscribed endpoints.\n *\n * @generated from field: int32 pending_webhooks = 6;\n */\n pendingWebhooks = 0;\n\n /**\n * When the event was created.\n *\n * @generated from field: google.protobuf.Timestamp created_at = 7;\n */\n createdAt?: Timestamp;\n\n /**\n * API version this event was emitted under (e.g., \"2026-05-23\").\n * Frozen at emit time so the payload shape stays stable for the event's\n * lifetime. Mirrored into the webhook envelope as the top-level `api_version`.\n *\n * @generated from field: string api_version = 8;\n */\n apiVersion = \"\";\n\n /**\n * True when the event was emitted from production (live mode) traffic.\n * Reserved for a future test-mode concept; always `true` today.\n *\n * @generated from field: bool livemode = 9;\n */\n livemode = false;\n\n /**\n * Resource type discriminator. Always \"event\" for this message.\n * Mirrored into the webhook envelope as the top-level `object`.\n *\n * @generated from field: string object = 10;\n */\n object = \"\";\n\n constructor(data?: PartialMessage<Event>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.Event\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"app_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"type\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"data\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 5, name: \"request_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 6, name: \"pending_webhooks\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n { no: 7, name: \"created_at\", kind: \"message\", T: Timestamp },\n { no: 8, name: \"api_version\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 9, name: \"livemode\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 10, name: \"object\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): Event {\n return new Event().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): Event {\n return new Event().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): Event {\n return new Event().fromJsonString(jsonString, options);\n }\n\n static equals(a: Event | PlainMessage<Event> | undefined, b: Event | PlainMessage<Event> | undefined): boolean {\n return proto3.util.equals(Event, a, b);\n }\n}\n\n/**\n * A single attempt to deliver an Event to a WebhookEndpoint.\n * Multiple rows exist for the same event+endpoint pair when retries are scheduled.\n *\n * @generated from message transcodely.v1.WebhookDelivery\n */\nexport class WebhookDelivery extends Message<WebhookDelivery> {\n /**\n * Unique identifier (e.g., \"whd_a1b2c3d4e5f6\").\n *\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n /**\n * Endpoint that received (or failed to receive) the event.\n *\n * @generated from field: string webhook_endpoint_id = 2;\n */\n webhookEndpointId = \"\";\n\n /**\n * Event that was delivered.\n *\n * @generated from field: string event_id = 3;\n */\n eventId = \"\";\n\n /**\n * Delivery status: \"pending\", \"succeeded\", or \"failed\".\n * Wire value is lowercase per project convention.\n *\n * @generated from field: string status = 4;\n */\n status = \"\";\n\n /**\n * Attempt number starting at 1. Incremented by the retry scheduler\n * when a new delivery row is created for a retry.\n *\n * @generated from field: int32 attempt = 5;\n */\n attempt = 0;\n\n /**\n * HTTP response status returned by the endpoint.\n * Only present when the worker received a response (absent on transport error).\n *\n * @generated from field: optional int32 response_status = 6;\n */\n responseStatus?: number;\n\n /**\n * First 4 KiB of the HTTP response body (truncated if larger).\n *\n * @generated from field: optional string response_body = 7;\n */\n responseBody?: string;\n\n /**\n * When the next retry is scheduled.\n * Absent when the delivery succeeded or all retry attempts are exhausted.\n *\n * @generated from field: optional google.protobuf.Timestamp next_attempt_at = 8;\n */\n nextAttemptAt?: Timestamp;\n\n /**\n * When this delivery record was created.\n *\n * @generated from field: google.protobuf.Timestamp created_at = 9;\n */\n createdAt?: Timestamp;\n\n /**\n * When this delivery record was last updated.\n *\n * @generated from field: google.protobuf.Timestamp updated_at = 10;\n */\n updatedAt?: Timestamp;\n\n /**\n * Round-trip time from request send to response received, in milliseconds.\n * Absent on transport errors (no response was received).\n *\n * @generated from field: optional int32 latency_ms = 11;\n */\n latencyMs?: number;\n\n /**\n * Reason a response was not received. Absent when response_status is set.\n * One of: \"timeout\", \"connection_refused\", \"dns_failure\",\n * \"tls_handshake_failed\", \"ssrf_blocked\", \"unknown\".\n * Wire value is lowercase per project convention.\n *\n * @generated from field: optional string transport_error = 12;\n */\n transportError?: string;\n\n /**\n * JSON-encoded response headers as received from the endpoint, with\n * credential-bearing headers (Authorization, Cookie, Set-Cookie, etc.)\n * redacted to \"[REDACTED]\". Capped at 32 header names and 4 KiB of JSON;\n * dropped to absent when either cap is exceeded so a hostile receiver\n * cannot bloat the audit log.\n * Decode as map<string, string[]> (multi-value headers are preserved).\n * Absent on transport errors.\n *\n * @generated from field: optional string response_headers = 13;\n */\n responseHeaders?: string;\n\n constructor(data?: PartialMessage<WebhookDelivery>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.WebhookDelivery\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"webhook_endpoint_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"event_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"status\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 5, name: \"attempt\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n { no: 6, name: \"response_status\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 7, name: \"response_body\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 8, name: \"next_attempt_at\", kind: \"message\", T: Timestamp, opt: true },\n { no: 9, name: \"created_at\", kind: \"message\", T: Timestamp },\n { no: 10, name: \"updated_at\", kind: \"message\", T: Timestamp },\n { no: 11, name: \"latency_ms\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 12, name: \"transport_error\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 13, name: \"response_headers\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): WebhookDelivery {\n return new WebhookDelivery().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): WebhookDelivery {\n return new WebhookDelivery().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): WebhookDelivery {\n return new WebhookDelivery().fromJsonString(jsonString, options);\n }\n\n static equals(a: WebhookDelivery | PlainMessage<WebhookDelivery> | undefined, b: WebhookDelivery | PlainMessage<WebhookDelivery> | undefined): boolean {\n return proto3.util.equals(WebhookDelivery, a, b);\n }\n}\n\n/**\n * Request to create a new webhook endpoint.\n *\n * @generated from message transcodely.v1.CreateWebhookEndpointRequest\n */\nexport class CreateWebhookEndpointRequest extends Message<CreateWebhookEndpointRequest> {\n /**\n * App to create the endpoint for.\n *\n * @generated from field: string app_id = 1;\n */\n appId = \"\";\n\n /**\n * HTTPS URL to receive signed POST requests.\n *\n * @generated from field: string url = 2;\n */\n url = \"\";\n\n /**\n * Optional description (max 500 characters).\n *\n * @generated from field: optional string description = 3;\n */\n description?: string;\n\n /**\n * Event types to subscribe to. At least one required. Use \"*\" for all.\n *\n * @generated from field: repeated string enabled_events = 4;\n */\n enabledEvents: string[] = [];\n\n /**\n * Optional API version override.\n *\n * @generated from field: optional string api_version = 5;\n */\n apiVersion?: string;\n\n /**\n * Optional metadata.\n *\n * @generated from field: map<string, string> metadata = 6;\n */\n metadata: { [key: string]: string } = {};\n\n constructor(data?: PartialMessage<CreateWebhookEndpointRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.CreateWebhookEndpointRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"app_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"description\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 4, name: \"enabled_events\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n { no: 5, name: \"api_version\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 6, name: \"metadata\", kind: \"map\", K: 9 /* ScalarType.STRING */, V: {kind: \"scalar\", T: 9 /* ScalarType.STRING */} },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CreateWebhookEndpointRequest {\n return new CreateWebhookEndpointRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CreateWebhookEndpointRequest {\n return new CreateWebhookEndpointRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CreateWebhookEndpointRequest {\n return new CreateWebhookEndpointRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: CreateWebhookEndpointRequest | PlainMessage<CreateWebhookEndpointRequest> | undefined, b: CreateWebhookEndpointRequest | PlainMessage<CreateWebhookEndpointRequest> | undefined): boolean {\n return proto3.util.equals(CreateWebhookEndpointRequest, a, b);\n }\n}\n\n/**\n * Response from creating a webhook endpoint.\n * The signing secret is populated only on create.\n *\n * @generated from message transcodely.v1.CreateWebhookEndpointResponse\n */\nexport class CreateWebhookEndpointResponse extends Message<CreateWebhookEndpointResponse> {\n /**\n * The created webhook endpoint, with the plain-text signing secret populated.\n *\n * @generated from field: transcodely.v1.WebhookEndpoint endpoint = 1;\n */\n endpoint?: WebhookEndpoint;\n\n constructor(data?: PartialMessage<CreateWebhookEndpointResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.CreateWebhookEndpointResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"endpoint\", kind: \"message\", T: WebhookEndpoint },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CreateWebhookEndpointResponse {\n return new CreateWebhookEndpointResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CreateWebhookEndpointResponse {\n return new CreateWebhookEndpointResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CreateWebhookEndpointResponse {\n return new CreateWebhookEndpointResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: CreateWebhookEndpointResponse | PlainMessage<CreateWebhookEndpointResponse> | undefined, b: CreateWebhookEndpointResponse | PlainMessage<CreateWebhookEndpointResponse> | undefined): boolean {\n return proto3.util.equals(CreateWebhookEndpointResponse, a, b);\n }\n}\n\n/**\n * Request to retrieve a webhook endpoint.\n *\n * @generated from message transcodely.v1.RetrieveWebhookEndpointRequest\n */\nexport class RetrieveWebhookEndpointRequest extends Message<RetrieveWebhookEndpointRequest> {\n /**\n * Webhook endpoint ID.\n *\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n constructor(data?: PartialMessage<RetrieveWebhookEndpointRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.RetrieveWebhookEndpointRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): RetrieveWebhookEndpointRequest {\n return new RetrieveWebhookEndpointRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): RetrieveWebhookEndpointRequest {\n return new RetrieveWebhookEndpointRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): RetrieveWebhookEndpointRequest {\n return new RetrieveWebhookEndpointRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: RetrieveWebhookEndpointRequest | PlainMessage<RetrieveWebhookEndpointRequest> | undefined, b: RetrieveWebhookEndpointRequest | PlainMessage<RetrieveWebhookEndpointRequest> | undefined): boolean {\n return proto3.util.equals(RetrieveWebhookEndpointRequest, a, b);\n }\n}\n\n/**\n * Response from retrieving a webhook endpoint.\n * The signing secret is never populated here.\n *\n * @generated from message transcodely.v1.RetrieveWebhookEndpointResponse\n */\nexport class RetrieveWebhookEndpointResponse extends Message<RetrieveWebhookEndpointResponse> {\n /**\n * The requested webhook endpoint.\n *\n * @generated from field: transcodely.v1.WebhookEndpoint endpoint = 1;\n */\n endpoint?: WebhookEndpoint;\n\n constructor(data?: PartialMessage<RetrieveWebhookEndpointResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.RetrieveWebhookEndpointResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"endpoint\", kind: \"message\", T: WebhookEndpoint },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): RetrieveWebhookEndpointResponse {\n return new RetrieveWebhookEndpointResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): RetrieveWebhookEndpointResponse {\n return new RetrieveWebhookEndpointResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): RetrieveWebhookEndpointResponse {\n return new RetrieveWebhookEndpointResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: RetrieveWebhookEndpointResponse | PlainMessage<RetrieveWebhookEndpointResponse> | undefined, b: RetrieveWebhookEndpointResponse | PlainMessage<RetrieveWebhookEndpointResponse> | undefined): boolean {\n return proto3.util.equals(RetrieveWebhookEndpointResponse, a, b);\n }\n}\n\n/**\n * Request to update a webhook endpoint.\n * Only provided fields are updated; omitted fields are unchanged.\n *\n * @generated from message transcodely.v1.UpdateWebhookEndpointRequest\n */\nexport class UpdateWebhookEndpointRequest extends Message<UpdateWebhookEndpointRequest> {\n /**\n * Webhook endpoint ID.\n *\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n /**\n * New HTTPS URL (if provided).\n *\n * @generated from field: optional string url = 2;\n */\n url?: string;\n\n /**\n * New description (if provided; max 500 characters).\n *\n * @generated from field: optional string description = 3;\n */\n description?: string;\n\n /**\n * Replacement enabled-events list (if provided, replaces the entire list).\n *\n * @generated from field: repeated string enabled_events = 4;\n */\n enabledEvents: string[] = [];\n\n /**\n * New status: \"enabled\" or \"disabled\".\n *\n * @generated from field: optional string status = 5;\n */\n status?: string;\n\n /**\n * Replacement metadata map (if provided, replaces the entire map).\n *\n * @generated from field: map<string, string> metadata = 6;\n */\n metadata: { [key: string]: string } = {};\n\n constructor(data?: PartialMessage<UpdateWebhookEndpointRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.UpdateWebhookEndpointRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 3, name: \"description\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 4, name: \"enabled_events\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n { no: 5, name: \"status\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 6, name: \"metadata\", kind: \"map\", K: 9 /* ScalarType.STRING */, V: {kind: \"scalar\", T: 9 /* ScalarType.STRING */} },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): UpdateWebhookEndpointRequest {\n return new UpdateWebhookEndpointRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): UpdateWebhookEndpointRequest {\n return new UpdateWebhookEndpointRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): UpdateWebhookEndpointRequest {\n return new UpdateWebhookEndpointRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: UpdateWebhookEndpointRequest | PlainMessage<UpdateWebhookEndpointRequest> | undefined, b: UpdateWebhookEndpointRequest | PlainMessage<UpdateWebhookEndpointRequest> | undefined): boolean {\n return proto3.util.equals(UpdateWebhookEndpointRequest, a, b);\n }\n}\n\n/**\n * Response from updating a webhook endpoint.\n *\n * @generated from message transcodely.v1.UpdateWebhookEndpointResponse\n */\nexport class UpdateWebhookEndpointResponse extends Message<UpdateWebhookEndpointResponse> {\n /**\n * The updated webhook endpoint.\n *\n * @generated from field: transcodely.v1.WebhookEndpoint endpoint = 1;\n */\n endpoint?: WebhookEndpoint;\n\n constructor(data?: PartialMessage<UpdateWebhookEndpointResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.UpdateWebhookEndpointResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"endpoint\", kind: \"message\", T: WebhookEndpoint },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): UpdateWebhookEndpointResponse {\n return new UpdateWebhookEndpointResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): UpdateWebhookEndpointResponse {\n return new UpdateWebhookEndpointResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): UpdateWebhookEndpointResponse {\n return new UpdateWebhookEndpointResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: UpdateWebhookEndpointResponse | PlainMessage<UpdateWebhookEndpointResponse> | undefined, b: UpdateWebhookEndpointResponse | PlainMessage<UpdateWebhookEndpointResponse> | undefined): boolean {\n return proto3.util.equals(UpdateWebhookEndpointResponse, a, b);\n }\n}\n\n/**\n * Request to delete a webhook endpoint.\n *\n * @generated from message transcodely.v1.DeleteWebhookEndpointRequest\n */\nexport class DeleteWebhookEndpointRequest extends Message<DeleteWebhookEndpointRequest> {\n /**\n * Webhook endpoint ID.\n *\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n constructor(data?: PartialMessage<DeleteWebhookEndpointRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.DeleteWebhookEndpointRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): DeleteWebhookEndpointRequest {\n return new DeleteWebhookEndpointRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): DeleteWebhookEndpointRequest {\n return new DeleteWebhookEndpointRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): DeleteWebhookEndpointRequest {\n return new DeleteWebhookEndpointRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: DeleteWebhookEndpointRequest | PlainMessage<DeleteWebhookEndpointRequest> | undefined, b: DeleteWebhookEndpointRequest | PlainMessage<DeleteWebhookEndpointRequest> | undefined): boolean {\n return proto3.util.equals(DeleteWebhookEndpointRequest, a, b);\n }\n}\n\n/**\n * Response from deleting a webhook endpoint.\n *\n * @generated from message transcodely.v1.DeleteWebhookEndpointResponse\n */\nexport class DeleteWebhookEndpointResponse extends Message<DeleteWebhookEndpointResponse> {\n constructor(data?: PartialMessage<DeleteWebhookEndpointResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.DeleteWebhookEndpointResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): DeleteWebhookEndpointResponse {\n return new DeleteWebhookEndpointResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): DeleteWebhookEndpointResponse {\n return new DeleteWebhookEndpointResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): DeleteWebhookEndpointResponse {\n return new DeleteWebhookEndpointResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: DeleteWebhookEndpointResponse | PlainMessage<DeleteWebhookEndpointResponse> | undefined, b: DeleteWebhookEndpointResponse | PlainMessage<DeleteWebhookEndpointResponse> | undefined): boolean {\n return proto3.util.equals(DeleteWebhookEndpointResponse, a, b);\n }\n}\n\n/**\n * Request to list webhook endpoints for an app.\n *\n * @generated from message transcodely.v1.ListWebhookEndpointsRequest\n */\nexport class ListWebhookEndpointsRequest extends Message<ListWebhookEndpointsRequest> {\n /**\n * App to list endpoints for.\n *\n * @generated from field: string app_id = 1;\n */\n appId = \"\";\n\n /**\n * Pagination (cursor-based; limit ≤ 100).\n *\n * @generated from field: transcodely.v1.PaginationRequest pagination = 2;\n */\n pagination?: PaginationRequest;\n\n constructor(data?: PartialMessage<ListWebhookEndpointsRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.ListWebhookEndpointsRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"app_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"pagination\", kind: \"message\", T: PaginationRequest },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListWebhookEndpointsRequest {\n return new ListWebhookEndpointsRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListWebhookEndpointsRequest {\n return new ListWebhookEndpointsRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListWebhookEndpointsRequest {\n return new ListWebhookEndpointsRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: ListWebhookEndpointsRequest | PlainMessage<ListWebhookEndpointsRequest> | undefined, b: ListWebhookEndpointsRequest | PlainMessage<ListWebhookEndpointsRequest> | undefined): boolean {\n return proto3.util.equals(ListWebhookEndpointsRequest, a, b);\n }\n}\n\n/**\n * Response from listing webhook endpoints.\n *\n * @generated from message transcodely.v1.ListWebhookEndpointsResponse\n */\nexport class ListWebhookEndpointsResponse extends Message<ListWebhookEndpointsResponse> {\n /**\n * Webhook endpoints for the app.\n *\n * @generated from field: repeated transcodely.v1.WebhookEndpoint endpoints = 1;\n */\n endpoints: WebhookEndpoint[] = [];\n\n /**\n * Pagination metadata.\n *\n * @generated from field: transcodely.v1.PaginationResponse pagination = 2;\n */\n pagination?: PaginationResponse;\n\n constructor(data?: PartialMessage<ListWebhookEndpointsResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.ListWebhookEndpointsResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"endpoints\", kind: \"message\", T: WebhookEndpoint, repeated: true },\n { no: 2, name: \"pagination\", kind: \"message\", T: PaginationResponse },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListWebhookEndpointsResponse {\n return new ListWebhookEndpointsResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListWebhookEndpointsResponse {\n return new ListWebhookEndpointsResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListWebhookEndpointsResponse {\n return new ListWebhookEndpointsResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: ListWebhookEndpointsResponse | PlainMessage<ListWebhookEndpointsResponse> | undefined, b: ListWebhookEndpointsResponse | PlainMessage<ListWebhookEndpointsResponse> | undefined): boolean {\n return proto3.util.equals(ListWebhookEndpointsResponse, a, b);\n }\n}\n\n/**\n * Request to rotate the signing secret for a webhook endpoint.\n *\n * @generated from message transcodely.v1.RotateWebhookSecretRequest\n */\nexport class RotateWebhookSecretRequest extends Message<RotateWebhookSecretRequest> {\n /**\n * Webhook endpoint ID.\n *\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n constructor(data?: PartialMessage<RotateWebhookSecretRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.RotateWebhookSecretRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): RotateWebhookSecretRequest {\n return new RotateWebhookSecretRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): RotateWebhookSecretRequest {\n return new RotateWebhookSecretRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): RotateWebhookSecretRequest {\n return new RotateWebhookSecretRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: RotateWebhookSecretRequest | PlainMessage<RotateWebhookSecretRequest> | undefined, b: RotateWebhookSecretRequest | PlainMessage<RotateWebhookSecretRequest> | undefined): boolean {\n return proto3.util.equals(RotateWebhookSecretRequest, a, b);\n }\n}\n\n/**\n * Response from rotating a signing secret.\n * The new plain-text signing secret is populated only on this response.\n *\n * @generated from message transcodely.v1.RotateWebhookSecretResponse\n */\nexport class RotateWebhookSecretResponse extends Message<RotateWebhookSecretResponse> {\n /**\n * The webhook endpoint, with the new plain-text signing secret populated.\n *\n * @generated from field: transcodely.v1.WebhookEndpoint endpoint = 1;\n */\n endpoint?: WebhookEndpoint;\n\n constructor(data?: PartialMessage<RotateWebhookSecretResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.RotateWebhookSecretResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"endpoint\", kind: \"message\", T: WebhookEndpoint },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): RotateWebhookSecretResponse {\n return new RotateWebhookSecretResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): RotateWebhookSecretResponse {\n return new RotateWebhookSecretResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): RotateWebhookSecretResponse {\n return new RotateWebhookSecretResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: RotateWebhookSecretResponse | PlainMessage<RotateWebhookSecretResponse> | undefined, b: RotateWebhookSecretResponse | PlainMessage<RotateWebhookSecretResponse> | undefined): boolean {\n return proto3.util.equals(RotateWebhookSecretResponse, a, b);\n }\n}\n\n/**\n * Request to list events for an app.\n *\n * @generated from message transcodely.v1.ListEventsRequest\n */\nexport class ListEventsRequest extends Message<ListEventsRequest> {\n /**\n * App to list events for.\n *\n * @generated from field: string app_id = 1;\n */\n appId = \"\";\n\n /**\n * Filter by event type (exact match, e.g., \"job.succeeded\").\n *\n * @generated from field: optional string type = 2;\n */\n type?: string;\n\n /**\n * Only include events at or after this timestamp (RFC 3339).\n *\n * @generated from field: optional google.protobuf.Timestamp created_after = 3;\n */\n createdAfter?: Timestamp;\n\n /**\n * Only include events at or before this timestamp (RFC 3339).\n *\n * @generated from field: optional google.protobuf.Timestamp created_before = 4;\n */\n createdBefore?: Timestamp;\n\n /**\n * Pagination (cursor-based, newest first; limit ≤ 100).\n *\n * @generated from field: transcodely.v1.PaginationRequest pagination = 5;\n */\n pagination?: PaginationRequest;\n\n constructor(data?: PartialMessage<ListEventsRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.ListEventsRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"app_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"type\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 3, name: \"created_after\", kind: \"message\", T: Timestamp, opt: true },\n { no: 4, name: \"created_before\", kind: \"message\", T: Timestamp, opt: true },\n { no: 5, name: \"pagination\", kind: \"message\", T: PaginationRequest },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListEventsRequest {\n return new ListEventsRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListEventsRequest {\n return new ListEventsRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListEventsRequest {\n return new ListEventsRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: ListEventsRequest | PlainMessage<ListEventsRequest> | undefined, b: ListEventsRequest | PlainMessage<ListEventsRequest> | undefined): boolean {\n return proto3.util.equals(ListEventsRequest, a, b);\n }\n}\n\n/**\n * Response from listing events.\n *\n * @generated from message transcodely.v1.ListEventsResponse\n */\nexport class ListEventsResponse extends Message<ListEventsResponse> {\n /**\n * Events for the app, newest first.\n *\n * @generated from field: repeated transcodely.v1.Event events = 1;\n */\n events: Event[] = [];\n\n /**\n * Pagination metadata.\n *\n * @generated from field: transcodely.v1.PaginationResponse pagination = 2;\n */\n pagination?: PaginationResponse;\n\n constructor(data?: PartialMessage<ListEventsResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.ListEventsResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"events\", kind: \"message\", T: Event, repeated: true },\n { no: 2, name: \"pagination\", kind: \"message\", T: PaginationResponse },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListEventsResponse {\n return new ListEventsResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListEventsResponse {\n return new ListEventsResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListEventsResponse {\n return new ListEventsResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: ListEventsResponse | PlainMessage<ListEventsResponse> | undefined, b: ListEventsResponse | PlainMessage<ListEventsResponse> | undefined): boolean {\n return proto3.util.equals(ListEventsResponse, a, b);\n }\n}\n\n/**\n * Request to retrieve a single event.\n *\n * @generated from message transcodely.v1.RetrieveEventRequest\n */\nexport class RetrieveEventRequest extends Message<RetrieveEventRequest> {\n /**\n * Event ID.\n *\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n constructor(data?: PartialMessage<RetrieveEventRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.RetrieveEventRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): RetrieveEventRequest {\n return new RetrieveEventRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): RetrieveEventRequest {\n return new RetrieveEventRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): RetrieveEventRequest {\n return new RetrieveEventRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: RetrieveEventRequest | PlainMessage<RetrieveEventRequest> | undefined, b: RetrieveEventRequest | PlainMessage<RetrieveEventRequest> | undefined): boolean {\n return proto3.util.equals(RetrieveEventRequest, a, b);\n }\n}\n\n/**\n * Response from retrieving a single event.\n *\n * @generated from message transcodely.v1.RetrieveEventResponse\n */\nexport class RetrieveEventResponse extends Message<RetrieveEventResponse> {\n /**\n * The requested event.\n *\n * @generated from field: transcodely.v1.Event event = 1;\n */\n event?: Event;\n\n constructor(data?: PartialMessage<RetrieveEventResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.RetrieveEventResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"event\", kind: \"message\", T: Event },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): RetrieveEventResponse {\n return new RetrieveEventResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): RetrieveEventResponse {\n return new RetrieveEventResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): RetrieveEventResponse {\n return new RetrieveEventResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: RetrieveEventResponse | PlainMessage<RetrieveEventResponse> | undefined, b: RetrieveEventResponse | PlainMessage<RetrieveEventResponse> | undefined): boolean {\n return proto3.util.equals(RetrieveEventResponse, a, b);\n }\n}\n\n/**\n * Request to resend an existing event.\n * Creates new pending delivery records; the delivery worker picks them up immediately.\n *\n * @generated from message transcodely.v1.ResendEventRequest\n */\nexport class ResendEventRequest extends Message<ResendEventRequest> {\n /**\n * Event ID.\n *\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n /**\n * Subset of endpoint IDs to resend to (optional; max 100).\n * If empty, resends to all currently-subscribed enabled endpoints.\n *\n * @generated from field: repeated string endpoint_ids = 2;\n */\n endpointIds: string[] = [];\n\n constructor(data?: PartialMessage<ResendEventRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.ResendEventRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"endpoint_ids\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ResendEventRequest {\n return new ResendEventRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ResendEventRequest {\n return new ResendEventRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ResendEventRequest {\n return new ResendEventRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: ResendEventRequest | PlainMessage<ResendEventRequest> | undefined, b: ResendEventRequest | PlainMessage<ResendEventRequest> | undefined): boolean {\n return proto3.util.equals(ResendEventRequest, a, b);\n }\n}\n\n/**\n * Response from resending an event.\n * One delivery record is returned per endpoint the event was queued for.\n *\n * @generated from message transcodely.v1.ResendEventResponse\n */\nexport class ResendEventResponse extends Message<ResendEventResponse> {\n /**\n * Newly-created pending delivery records, one per target endpoint.\n *\n * @generated from field: repeated transcodely.v1.WebhookDelivery deliveries = 1;\n */\n deliveries: WebhookDelivery[] = [];\n\n constructor(data?: PartialMessage<ResendEventResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.ResendEventResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"deliveries\", kind: \"message\", T: WebhookDelivery, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ResendEventResponse {\n return new ResendEventResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ResendEventResponse {\n return new ResendEventResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ResendEventResponse {\n return new ResendEventResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: ResendEventResponse | PlainMessage<ResendEventResponse> | undefined, b: ResendEventResponse | PlainMessage<ResendEventResponse> | undefined): boolean {\n return proto3.util.equals(ResendEventResponse, a, b);\n }\n}\n\n/**\n * Request to send a synthetic test event to a single endpoint.\n *\n * @generated from message transcodely.v1.SendTestWebhookRequest\n */\nexport class SendTestWebhookRequest extends Message<SendTestWebhookRequest> {\n /**\n * Endpoint to send the test event to.\n *\n * @generated from field: string endpoint_id = 1;\n */\n endpointId = \"\";\n\n /**\n * Concrete event type to simulate. Must be one of the values returned\n * by domain.WebhookEventTypes() (e.g. \"job.succeeded\", \"video.uploaded\").\n * The \"*\" wildcard is rejected: it is only valid as a subscription value.\n *\n * @generated from field: string event_type = 2;\n */\n eventType = \"\";\n\n constructor(data?: PartialMessage<SendTestWebhookRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.SendTestWebhookRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"endpoint_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"event_type\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): SendTestWebhookRequest {\n return new SendTestWebhookRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): SendTestWebhookRequest {\n return new SendTestWebhookRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): SendTestWebhookRequest {\n return new SendTestWebhookRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: SendTestWebhookRequest | PlainMessage<SendTestWebhookRequest> | undefined, b: SendTestWebhookRequest | PlainMessage<SendTestWebhookRequest> | undefined): boolean {\n return proto3.util.equals(SendTestWebhookRequest, a, b);\n }\n}\n\n/**\n * Response from SendTestWebhook.\n *\n * @generated from message transcodely.v1.SendTestWebhookResponse\n */\nexport class SendTestWebhookResponse extends Message<SendTestWebhookResponse> {\n /**\n * The newly-queued delivery row. The UI navigates the operator to its\n * detail sheet so they can watch the worker transition it from pending\n * to succeeded / failed in real time.\n *\n * @generated from field: transcodely.v1.WebhookDelivery delivery = 1;\n */\n delivery?: WebhookDelivery;\n\n constructor(data?: PartialMessage<SendTestWebhookResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.SendTestWebhookResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"delivery\", kind: \"message\", T: WebhookDelivery },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): SendTestWebhookResponse {\n return new SendTestWebhookResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): SendTestWebhookResponse {\n return new SendTestWebhookResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): SendTestWebhookResponse {\n return new SendTestWebhookResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: SendTestWebhookResponse | PlainMessage<SendTestWebhookResponse> | undefined, b: SendTestWebhookResponse | PlainMessage<SendTestWebhookResponse> | undefined): boolean {\n return proto3.util.equals(SendTestWebhookResponse, a, b);\n }\n}\n\n/**\n * Request to list webhook delivery attempts.\n * At least one of endpoint_id or event_id must be set. The event_id-only form\n * returns every delivery for an event across every subscribed endpoint, which\n * the dashboard uses to render an event's full delivery history in a single\n * round-trip instead of fanning out N requests per endpoint.\n *\n * @generated from message transcodely.v1.ListWebhookDeliveriesRequest\n */\nexport class ListWebhookDeliveriesRequest extends Message<ListWebhookDeliveriesRequest> {\n /**\n * Endpoint to list deliveries for. Either this or event_id is required.\n *\n * @generated from field: optional string endpoint_id = 1;\n */\n endpointId?: string;\n\n /**\n * Filter by event ID. Either this or endpoint_id is required.\n *\n * @generated from field: optional string event_id = 2;\n */\n eventId?: string;\n\n /**\n * Filter by status: \"pending\", \"succeeded\", or \"failed\".\n *\n * @generated from field: optional string status = 3;\n */\n status?: string;\n\n /**\n * Pagination (cursor-based; limit ≤ 100).\n *\n * @generated from field: transcodely.v1.PaginationRequest pagination = 4;\n */\n pagination?: PaginationRequest;\n\n constructor(data?: PartialMessage<ListWebhookDeliveriesRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.ListWebhookDeliveriesRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"endpoint_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 2, name: \"event_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 3, name: \"status\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 4, name: \"pagination\", kind: \"message\", T: PaginationRequest },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListWebhookDeliveriesRequest {\n return new ListWebhookDeliveriesRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListWebhookDeliveriesRequest {\n return new ListWebhookDeliveriesRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListWebhookDeliveriesRequest {\n return new ListWebhookDeliveriesRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: ListWebhookDeliveriesRequest | PlainMessage<ListWebhookDeliveriesRequest> | undefined, b: ListWebhookDeliveriesRequest | PlainMessage<ListWebhookDeliveriesRequest> | undefined): boolean {\n return proto3.util.equals(ListWebhookDeliveriesRequest, a, b);\n }\n}\n\n/**\n * Response from listing webhook deliveries.\n *\n * @generated from message transcodely.v1.ListWebhookDeliveriesResponse\n */\nexport class ListWebhookDeliveriesResponse extends Message<ListWebhookDeliveriesResponse> {\n /**\n * Delivery records.\n *\n * @generated from field: repeated transcodely.v1.WebhookDelivery deliveries = 1;\n */\n deliveries: WebhookDelivery[] = [];\n\n /**\n * Pagination metadata.\n *\n * @generated from field: transcodely.v1.PaginationResponse pagination = 2;\n */\n pagination?: PaginationResponse;\n\n constructor(data?: PartialMessage<ListWebhookDeliveriesResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.ListWebhookDeliveriesResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"deliveries\", kind: \"message\", T: WebhookDelivery, repeated: true },\n { no: 2, name: \"pagination\", kind: \"message\", T: PaginationResponse },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListWebhookDeliveriesResponse {\n return new ListWebhookDeliveriesResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListWebhookDeliveriesResponse {\n return new ListWebhookDeliveriesResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListWebhookDeliveriesResponse {\n return new ListWebhookDeliveriesResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: ListWebhookDeliveriesResponse | PlainMessage<ListWebhookDeliveriesResponse> | undefined, b: ListWebhookDeliveriesResponse | PlainMessage<ListWebhookDeliveriesResponse> | undefined): boolean {\n return proto3.util.equals(ListWebhookDeliveriesResponse, a, b);\n }\n}\n\n/**\n * Request for aggregate delivery stats on a single endpoint.\n *\n * @generated from message transcodely.v1.GetEndpointHealthRequest\n */\nexport class GetEndpointHealthRequest extends Message<GetEndpointHealthRequest> {\n /**\n * Endpoint to summarize.\n *\n * @generated from field: string endpoint_id = 1;\n */\n endpointId = \"\";\n\n /**\n * Rolling window. One of \"24h\" (24 hourly buckets, default), \"7d\"\n * (7 daily buckets), or \"30d\" (30 daily buckets).\n *\n * @generated from field: optional string window = 2;\n */\n window?: string;\n\n constructor(data?: PartialMessage<GetEndpointHealthRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.GetEndpointHealthRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"endpoint_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"window\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetEndpointHealthRequest {\n return new GetEndpointHealthRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetEndpointHealthRequest {\n return new GetEndpointHealthRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetEndpointHealthRequest {\n return new GetEndpointHealthRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: GetEndpointHealthRequest | PlainMessage<GetEndpointHealthRequest> | undefined, b: GetEndpointHealthRequest | PlainMessage<GetEndpointHealthRequest> | undefined): boolean {\n return proto3.util.equals(GetEndpointHealthRequest, a, b);\n }\n}\n\n/**\n * Response from GetEndpointHealth. Counts are over the window; percentiles\n * are computed only over deliveries that received a response (transport\n * errors excluded). Buckets are zero-filled so the array length always\n * matches the window: 24 for \"24h\", 7 for \"7d\", 30 for \"30d\".\n *\n * @generated from message transcodely.v1.GetEndpointHealthResponse\n */\nexport class GetEndpointHealthResponse extends Message<GetEndpointHealthResponse> {\n /**\n * The window the response covers, echoed back (\"24h\", \"7d\", or \"30d\").\n *\n * @generated from field: string window = 1;\n */\n window = \"\";\n\n /**\n * Total attempts in the window (sum of bucket attempts).\n *\n * @generated from field: int32 total_attempts = 2;\n */\n totalAttempts = 0;\n\n /**\n * Terminal-state attempts.\n *\n * @generated from field: int32 succeeded = 3;\n */\n succeeded = 0;\n\n /**\n * @generated from field: int32 failed = 4;\n */\n failed = 0;\n\n /**\n * Attempts currently in-flight (status=\"pending\"). Counted across the\n * entire window, not \"pending at the bucket boundary\".\n *\n * @generated from field: int32 pending = 5;\n */\n pending = 0;\n\n /**\n * succeeded / (succeeded + failed). Pending rows are excluded from the\n * denominator. Zero when the denominator is zero.\n *\n * @generated from field: double success_rate = 6;\n */\n successRate = 0;\n\n /**\n * Latency percentiles in milliseconds over the window, excluding\n * transport errors. Absent when no responses were received.\n *\n * @generated from field: optional int32 p50_latency_ms = 7;\n */\n p50LatencyMs?: number;\n\n /**\n * @generated from field: optional int32 p95_latency_ms = 8;\n */\n p95LatencyMs?: number;\n\n /**\n * Time-bucketed counts for sparkline rendering, oldest-first, zero-filled.\n *\n * @generated from field: repeated transcodely.v1.HealthBucket buckets = 9;\n */\n buckets: HealthBucket[] = [];\n\n constructor(data?: PartialMessage<GetEndpointHealthResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.GetEndpointHealthResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"window\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"total_attempts\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n { no: 3, name: \"succeeded\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n { no: 4, name: \"failed\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n { no: 5, name: \"pending\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n { no: 6, name: \"success_rate\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */ },\n { no: 7, name: \"p50_latency_ms\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 8, name: \"p95_latency_ms\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 9, name: \"buckets\", kind: \"message\", T: HealthBucket, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetEndpointHealthResponse {\n return new GetEndpointHealthResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetEndpointHealthResponse {\n return new GetEndpointHealthResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetEndpointHealthResponse {\n return new GetEndpointHealthResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: GetEndpointHealthResponse | PlainMessage<GetEndpointHealthResponse> | undefined, b: GetEndpointHealthResponse | PlainMessage<GetEndpointHealthResponse> | undefined): boolean {\n return proto3.util.equals(GetEndpointHealthResponse, a, b);\n }\n}\n\n/**\n * One bucket of the GetEndpointHealth response.\n *\n * @generated from message transcodely.v1.HealthBucket\n */\nexport class HealthBucket extends Message<HealthBucket> {\n /**\n * Bucket start (inclusive).\n *\n * @generated from field: google.protobuf.Timestamp bucket_start = 1;\n */\n bucketStart?: Timestamp;\n\n /**\n * All attempts that landed in this bucket.\n *\n * @generated from field: int32 attempts = 2;\n */\n attempts = 0;\n\n /**\n * @generated from field: int32 succeeded = 3;\n */\n succeeded = 0;\n\n /**\n * @generated from field: int32 failed = 4;\n */\n failed = 0;\n\n /**\n * In-flight retries scheduled within this bucket.\n *\n * @generated from field: int32 pending = 5;\n */\n pending = 0;\n\n constructor(data?: PartialMessage<HealthBucket>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.HealthBucket\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"bucket_start\", kind: \"message\", T: Timestamp },\n { no: 2, name: \"attempts\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n { no: 3, name: \"succeeded\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n { no: 4, name: \"failed\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n { no: 5, name: \"pending\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): HealthBucket {\n return new HealthBucket().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): HealthBucket {\n return new HealthBucket().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): HealthBucket {\n return new HealthBucket().fromJsonString(jsonString, options);\n }\n\n static equals(a: HealthBucket | PlainMessage<HealthBucket> | undefined, b: HealthBucket | PlainMessage<HealthBucket> | undefined): boolean {\n return proto3.util.equals(HealthBucket, a, b);\n }\n}\n\n","// Webhook service — signed HTTPS event delivery (Stripe-parity).\n\n// @generated by protoc-gen-connect-es v1.6.1 with parameter \"target=ts,import_extension=.js\"\n// @generated from file transcodely/v1/webhook.proto (package transcodely.v1, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport { CreateWebhookEndpointRequest, CreateWebhookEndpointResponse, DeleteWebhookEndpointRequest, DeleteWebhookEndpointResponse, GetEndpointHealthRequest, GetEndpointHealthResponse, ListEventsRequest, ListEventsResponse, ListWebhookDeliveriesRequest, ListWebhookDeliveriesResponse, ListWebhookEndpointsRequest, ListWebhookEndpointsResponse, ResendEventRequest, ResendEventResponse, RetrieveEventRequest, RetrieveEventResponse, RetrieveWebhookEndpointRequest, RetrieveWebhookEndpointResponse, RotateWebhookSecretRequest, RotateWebhookSecretResponse, SendTestWebhookRequest, SendTestWebhookResponse, UpdateWebhookEndpointRequest, UpdateWebhookEndpointResponse } from \"./webhook_pb.js\";\nimport { MethodKind } from \"@bufbuild/protobuf\";\n\n/**\n * WebhookService manages signed webhook endpoints, events, and delivery history.\n *\n * @generated from service transcodely.v1.WebhookService\n */\nexport const WebhookService = {\n typeName: \"transcodely.v1.WebhookService\",\n methods: {\n /**\n * Create a new webhook endpoint.\n * WARNING: The signing secret is only returned in this response.\n * Store it securely — it cannot be retrieved again.\n *\n * @generated from rpc transcodely.v1.WebhookService.CreateWebhookEndpoint\n */\n createWebhookEndpoint: {\n name: \"CreateWebhookEndpoint\",\n I: CreateWebhookEndpointRequest,\n O: CreateWebhookEndpointResponse,\n kind: MethodKind.Unary,\n },\n /**\n * Retrieve a webhook endpoint by ID.\n * The secret field is always absent here; use RotateWebhookSecret to obtain a new one.\n *\n * @generated from rpc transcodely.v1.WebhookService.RetrieveWebhookEndpoint\n */\n retrieveWebhookEndpoint: {\n name: \"RetrieveWebhookEndpoint\",\n I: RetrieveWebhookEndpointRequest,\n O: RetrieveWebhookEndpointResponse,\n kind: MethodKind.Unary,\n },\n /**\n * Update a webhook endpoint's URL, description, enabled events, status, or metadata.\n *\n * @generated from rpc transcodely.v1.WebhookService.UpdateWebhookEndpoint\n */\n updateWebhookEndpoint: {\n name: \"UpdateWebhookEndpoint\",\n I: UpdateWebhookEndpointRequest,\n O: UpdateWebhookEndpointResponse,\n kind: MethodKind.Unary,\n },\n /**\n * Delete a webhook endpoint (soft delete).\n *\n * @generated from rpc transcodely.v1.WebhookService.DeleteWebhookEndpoint\n */\n deleteWebhookEndpoint: {\n name: \"DeleteWebhookEndpoint\",\n I: DeleteWebhookEndpointRequest,\n O: DeleteWebhookEndpointResponse,\n kind: MethodKind.Unary,\n },\n /**\n * List webhook endpoints for an app.\n *\n * @generated from rpc transcodely.v1.WebhookService.ListWebhookEndpoints\n */\n listWebhookEndpoints: {\n name: \"ListWebhookEndpoints\",\n I: ListWebhookEndpointsRequest,\n O: ListWebhookEndpointsResponse,\n kind: MethodKind.Unary,\n },\n /**\n * Rotate the signing secret for a webhook endpoint.\n * The previous secret remains valid for 24 hours to allow in-flight requests to drain.\n * WARNING: The new plain-text secret is only returned in this response.\n * Store it securely — it cannot be retrieved again.\n *\n * @generated from rpc transcodely.v1.WebhookService.RotateWebhookSecret\n */\n rotateWebhookSecret: {\n name: \"RotateWebhookSecret\",\n I: RotateWebhookSecretRequest,\n O: RotateWebhookSecretResponse,\n kind: MethodKind.Unary,\n },\n /**\n * List events emitted for an app, newest first.\n *\n * @generated from rpc transcodely.v1.WebhookService.ListEvents\n */\n listEvents: {\n name: \"ListEvents\",\n I: ListEventsRequest,\n O: ListEventsResponse,\n kind: MethodKind.Unary,\n },\n /**\n * Retrieve a single event by ID.\n *\n * @generated from rpc transcodely.v1.WebhookService.RetrieveEvent\n */\n retrieveEvent: {\n name: \"RetrieveEvent\",\n I: RetrieveEventRequest,\n O: RetrieveEventResponse,\n kind: MethodKind.Unary,\n },\n /**\n * Resend an existing event by creating new pending delivery records.\n * The delivery worker picks them up immediately.\n *\n * @generated from rpc transcodely.v1.WebhookService.ResendEvent\n */\n resendEvent: {\n name: \"ResendEvent\",\n I: ResendEventRequest,\n O: ResendEventResponse,\n kind: MethodKind.Unary,\n },\n /**\n * Send a synthetic event to a single endpoint to verify the handler.\n * The synthetic event is NOT visible from ListEvents and does not affect\n * pending_webhooks counters on any other event row. It uses the endpoint's\n * current signing secret and goes through the normal delivery pipeline\n * (including retries), so the operator sees a real WebhookDelivery row\n * they can inspect.\n *\n * Rate-limited to 10 calls per endpoint per minute. Disabled endpoints\n * reject with FailedPrecondition.\n *\n * @generated from rpc transcodely.v1.WebhookService.SendTestWebhook\n */\n sendTestWebhook: {\n name: \"SendTestWebhook\",\n I: SendTestWebhookRequest,\n O: SendTestWebhookResponse,\n kind: MethodKind.Unary,\n },\n /**\n * List webhook delivery attempts for an endpoint.\n *\n * @generated from rpc transcodely.v1.WebhookService.ListWebhookDeliveries\n */\n listWebhookDeliveries: {\n name: \"ListWebhookDeliveries\",\n I: ListWebhookDeliveriesRequest,\n O: ListWebhookDeliveriesResponse,\n kind: MethodKind.Unary,\n },\n /**\n * Aggregate delivery stats for a single endpoint over a rolling time window.\n * The dashboard renders the result as a success-rate gauge + sparkline; this\n * RPC's response is cached server-side for ~30 seconds, so callers may see\n * up to 30 s of staleness.\n *\n * @generated from rpc transcodely.v1.WebhookService.GetEndpointHealth\n */\n getEndpointHealth: {\n name: \"GetEndpointHealth\",\n I: GetEndpointHealthRequest,\n O: GetEndpointHealthResponse,\n kind: MethodKind.Unary,\n },\n }\n} as const;\n\n","/**\n * Transcodely's wire format simplifies proto enum values: the server emits\n * `\"pending\"` rather than `\"JOB_STATUS_PENDING\"`. Standard protojson can't\n * read or write that form, so we walk the JSON tree using descriptor info\n * from the generated message types and translate enums in both directions.\n *\n * This file is the TS port of `internal/connect/codec.go` in the API repo\n * (`enumPrefix`, `simplifyEnumValue`, `expandEnumValue`). Behavior must stay\n * bit-identical — see the cross-language conformance suite.\n */\n\nimport type { EnumType, FieldInfo, MessageType } from \"@bufbuild/protobuf\";\n\ntype JsonObject = { [key: string]: unknown };\ntype Mode = \"simplify\" | \"expand\";\n\n/** \"JobStatus\" → \"JOB_STATUS_\". The prefix the server strips/restores. */\nexport function enumPrefix(enumType: EnumType): string {\n return camelToScreamingSnake(simpleEnumName(enumType)) + \"_\";\n}\n\nfunction simpleEnumName(enumType: EnumType): string {\n // typeName is \"transcodely.v1.JobStatus\" — keep the trailing element only.\n const dot = enumType.typeName.lastIndexOf(\".\");\n return dot >= 0 ? enumType.typeName.slice(dot + 1) : enumType.typeName;\n}\n\n/** \"JobStatus\" → \"JOB_STATUS\"; \"APIKeyEnvironment\" → \"API_KEY_ENVIRONMENT\". */\nexport function camelToScreamingSnake(s: string): string {\n let result = \"\";\n for (let i = 0; i < s.length; i++) {\n const ch = s[i]!;\n if (i > 0 && /[A-Z]/.test(ch)) {\n const prev = s[i - 1]!;\n const next = s[i + 1];\n const prevLower = /[a-z]/.test(prev);\n const nextLower = next !== undefined && /[a-z]/.test(next);\n if (prevLower || nextLower) result += \"_\";\n }\n result += ch.toUpperCase();\n }\n return result;\n}\n\n/** \"JOB_STATUS_PENDING\" → \"pending\". */\nexport function simplifyEnumValue(value: string, enumType: EnumType): string {\n const prefix = enumPrefix(enumType);\n if (value.startsWith(prefix)) return value.slice(prefix.length).toLowerCase();\n return value.toLowerCase();\n}\n\n/** \"pending\" → \"JOB_STATUS_PENDING\" (uses the enum's full-name set as auth). */\nexport function expandEnumValue(value: string, enumType: EnumType): string {\n if (enumType.findName(value)) return value;\n const candidate = enumPrefix(enumType) + value.toUpperCase();\n if (enumType.findName(candidate)) return candidate;\n return value;\n}\n\n/** Recursively walk a JSON object and transform every enum string value. */\nexport function transformEnumsInJson(\n value: unknown,\n message: MessageType,\n mode: Mode,\n): void {\n if (!isObject(value)) return;\n\n for (const field of message.fields.list()) {\n const key = pickKey(value, field);\n if (key === null) continue;\n transformField(value, key, value[key], field, mode);\n }\n}\n\nfunction pickKey(obj: JsonObject, field: FieldInfo): string | null {\n // Connect-ES emits jsonName by default but our codec asks for proto names;\n // accept either form for safety on input.\n if (field.jsonName !== undefined && field.jsonName in obj) return field.jsonName;\n if (field.name in obj) return field.name;\n return null;\n}\n\nfunction transformField(\n parent: JsonObject,\n key: string,\n v: unknown,\n field: FieldInfo,\n mode: Mode,\n): void {\n if (v === null || v === undefined) return;\n\n // Map fields: { kind: \"map\", K, V: { kind, T } }\n if (field.kind === \"map\") {\n if (!isObject(v)) return;\n const valueKind = field.V.kind;\n if (valueKind === \"enum\") {\n const enumType = field.V.T;\n for (const k of Object.keys(v)) {\n const item = v[k];\n if (typeof item === \"string\") v[k] = applyEnum(item, enumType, mode);\n }\n } else if (valueKind === \"message\") {\n const msgType = field.V.T as MessageType;\n for (const k of Object.keys(v)) {\n const item = v[k];\n if (isObject(item)) transformEnumsInJson(item, msgType, mode);\n }\n }\n return;\n }\n\n // Repeated fields\n if (field.repeated) {\n if (!Array.isArray(v)) return;\n if (field.kind === \"enum\") {\n const enumType = field.T;\n for (let i = 0; i < v.length; i++) {\n const item = v[i];\n if (typeof item === \"string\") v[i] = applyEnum(item, enumType, mode);\n }\n } else if (field.kind === \"message\") {\n const msgType = field.T;\n for (const item of v) {\n if (isObject(item)) transformEnumsInJson(item, msgType, mode);\n }\n }\n return;\n }\n\n // Scalar enum\n if (field.kind === \"enum\") {\n if (typeof v === \"string\") parent[key] = applyEnum(v, field.T, mode);\n return;\n }\n\n // Nested message\n if (field.kind === \"message\") {\n if (isObject(v)) transformEnumsInJson(v, field.T, mode);\n }\n}\n\nfunction applyEnum(value: string, enumType: EnumType, mode: Mode): string {\n return mode === \"simplify\"\n ? simplifyEnumValue(value, enumType)\n : expandEnumValue(value, enumType);\n}\n\nfunction isObject(v: unknown): v is JsonObject {\n return typeof v === \"object\" && v !== null && !Array.isArray(v);\n}\n","/**\n * JSON serialization for the Transcodely wire format. Wraps protojson\n * (`MessageType.toJson` / `fromJson`) with snake_case field names + lowercase\n * simplified enum values, mirroring `internal/connect/codec.go` on the server.\n */\n\nimport type { Message, MessageType, JsonValue } from \"@bufbuild/protobuf\";\n\nimport { transformEnumsInJson } from \"./enum-transform.js\";\n\nexport interface SerializeOptions {\n /** Always emit unpopulated fields (matches server's EmitUnpopulated). */\n emitDefaultValues?: boolean;\n}\n\nconst DEFAULT_OPTS: Required<SerializeOptions> = {\n emitDefaultValues: true,\n};\n\n/**\n * Serialize a generated message to a Buffer of JSON bytes in the Transcodely\n * wire format (snake_case fields, simplified lowercase enums).\n */\nexport function serialize<T extends Message<T>>(\n msg: T,\n type: MessageType<T>,\n opts: SerializeOptions = {},\n): Uint8Array {\n const merged = { ...DEFAULT_OPTS, ...opts };\n const obj = msg.toJson({\n useProtoFieldName: true,\n emitDefaultValues: merged.emitDefaultValues,\n enumAsInteger: false,\n }) as JsonValue;\n if (typeof obj === \"object\" && obj !== null && !Array.isArray(obj)) {\n transformEnumsInJson(obj, type, \"simplify\");\n }\n return new TextEncoder().encode(JSON.stringify(obj));\n}\n\n/**\n * Deserialize JSON bytes (Transcodely wire format) into a generated message\n * instance. Accepts either form on input for forward compatibility.\n */\nexport function deserialize<T extends Message<T>>(\n bytes: Uint8Array,\n type: MessageType<T>,\n): T {\n const text = new TextDecoder().decode(bytes);\n if (text.length === 0) return new type();\n const parsed = JSON.parse(text);\n if (typeof parsed === \"object\" && parsed !== null && !Array.isArray(parsed)) {\n transformEnumsInJson(parsed, type, \"expand\");\n }\n return type.fromJson(parsed, { ignoreUnknownFields: true });\n}\n\n/** Same as `deserialize` but takes an already-parsed JsonValue. */\nexport function fromJson<T extends Message<T>>(\n json: JsonValue,\n type: MessageType<T>,\n): T {\n if (typeof json === \"object\" && json !== null && !Array.isArray(json)) {\n transformEnumsInJson(json, type, \"expand\");\n }\n return type.fromJson(json, { ignoreUnknownFields: true });\n}\n","// H.264/x264 codec options for video encoding.\n\n// @generated by protoc-gen-es v1.10.0 with parameter \"target=ts,import_extension=.js\"\n// @generated from file transcodely/v1/codec_h264.proto (package transcodely.v1, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from \"@bufbuild/protobuf\";\nimport { Message, proto3 } from \"@bufbuild/protobuf\";\n\n/**\n * H.264/x264 encoder options for fine-tuning encoding parameters.\n * All fields are optional - sensible defaults are applied based on quality tier.\n *\n * Restrictions (enforced by semantic validation, not protovalidate):\n * - preset: veryslow and placebo are not allowed (minimal quality gain at extreme cost)\n * - profile: high10/high422/high444 are not allowed (limited playback support)\n * - crf: must be 15-35 (0-14 produces lossless, 36+ produces garbage)\n * - tune: zerolatency is not allowed (reserved for live streaming)\n *\n * See docs/codec-implementation/01-x264.md for detailed documentation.\n *\n * @generated from message transcodely.v1.H264Options\n */\nexport class H264Options extends Message<H264Options> {\n /**\n * Encoding speed/quality trade-off preset.\n * Allowed: ultrafast, superfast, veryfast, faster, fast, medium, slow, slower\n * Default: determined by quality_tier (economy=veryfast, standard=medium, premium=slow)\n *\n * @generated from field: optional string preset = 1;\n */\n preset?: string;\n\n /**\n * Content-specific tuning.\n * Allowed: film, animation, grain, stillimage, fastdecode\n * Default: none (x264 auto-detection)\n *\n * @generated from field: optional string tune = 2;\n */\n tune?: string;\n\n /**\n * H.264 profile (feature set).\n * Allowed: baseline, main, high\n * Default: high (best compression with broad device support)\n *\n * @generated from field: optional string profile = 3;\n */\n profile?: string;\n\n /**\n * H.264 level (bitrate/resolution limits).\n * Allowed: 3.0, 3.1, 4.0, 4.1, 4.2, 5.0, 5.1, 5.2\n * Default: auto-selected based on resolution and framerate\n *\n * @generated from field: optional string level = 4;\n */\n level?: string;\n\n /**\n * Constant Rate Factor (quality-based encoding).\n * Range: 15-35 (lower = higher quality, larger file)\n * Default: determined by quality_tier (economy=26, standard=23, premium=20)\n * Note: Mutually exclusive with bitrate.\n *\n * @generated from field: optional int32 crf = 5;\n */\n crf?: number;\n\n /**\n * Target bitrate in Kbps (size-based encoding).\n * Range: 100-240000 (capped by level maximum)\n * Note: Mutually exclusive with CRF.\n *\n * @generated from field: optional int32 bitrate = 6;\n */\n bitrate?: number;\n\n /**\n * Maximum bitrate for VBV buffering (Kbps).\n * Range: 100-240000\n *\n * @generated from field: optional int32 maxrate = 7;\n */\n maxrate?: number;\n\n /**\n * VBV buffer size (Kbps).\n * Range: 100-480000\n *\n * @generated from field: optional int32 bufsize = 8;\n */\n bufsize?: number;\n\n /**\n * Maximum keyframe interval (GOP size) in frames.\n * Range: 1-600\n * Default: 250\n *\n * @generated from field: optional int32 keyint = 9;\n */\n keyint?: number;\n\n /**\n * Minimum keyframe interval in frames.\n * Range: 1-60\n * Default: 25\n *\n * @generated from field: optional int32 min_keyint = 10;\n */\n minKeyint?: number;\n\n /**\n * Number of B-frames between I and P frames.\n * Range: 0-16\n * Default: determined by preset\n *\n * @generated from field: optional int32 bframes = 11;\n */\n bframes?: number;\n\n /**\n * Number of reference frames.\n * Range: 1-16\n * Default: determined by preset\n *\n * @generated from field: optional int32 ref = 12;\n */\n ref?: number;\n\n /**\n * Rate control lookahead frames.\n * Range: 0-250\n * Default: determined by preset\n *\n * @generated from field: optional int32 rc_lookahead = 13;\n */\n rcLookahead?: number;\n\n /**\n * Adaptive quantization mode.\n * 0: disabled, 1: variance AQ, 2: auto-variance, 3: auto-variance with bias\n * Default: 1\n *\n * @generated from field: optional int32 aq_mode = 14;\n */\n aqMode?: number;\n\n /**\n * Adaptive quantization strength.\n * Range: 0.0-3.0\n * Default: 1.0\n *\n * @generated from field: optional double aq_strength = 15;\n */\n aqStrength?: number;\n\n /**\n * Psychovisual rate-distortion optimization.\n * Format: \"strength:trellis\" (e.g., \"1.0:0.0\")\n * Default: determined by tune setting\n *\n * @generated from field: optional string psy_rd = 16;\n */\n psyRd?: string;\n\n /**\n * Deblocking filter strength.\n * Format: \"alpha:beta\" (e.g., \"0:0\", \"-1:-1\")\n * Range: alpha/beta -6 to 6\n *\n * @generated from field: optional string deblock = 17;\n */\n deblock?: string;\n\n constructor(data?: PartialMessage<H264Options>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.H264Options\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"preset\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 2, name: \"tune\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 3, name: \"profile\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 4, name: \"level\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 5, name: \"crf\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 6, name: \"bitrate\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 7, name: \"maxrate\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 8, name: \"bufsize\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 9, name: \"keyint\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 10, name: \"min_keyint\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 11, name: \"bframes\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 12, name: \"ref\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 13, name: \"rc_lookahead\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 14, name: \"aq_mode\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 15, name: \"aq_strength\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */, opt: true },\n { no: 16, name: \"psy_rd\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 17, name: \"deblock\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): H264Options {\n return new H264Options().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): H264Options {\n return new H264Options().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): H264Options {\n return new H264Options().fromJsonString(jsonString, options);\n }\n\n static equals(a: H264Options | PlainMessage<H264Options> | undefined, b: H264Options | PlainMessage<H264Options> | undefined): boolean {\n return proto3.util.equals(H264Options, a, b);\n }\n}\n\n","// H.265/x265 codec options for video encoding.\n\n// @generated by protoc-gen-es v1.10.0 with parameter \"target=ts,import_extension=.js\"\n// @generated from file transcodely/v1/codec_h265.proto (package transcodely.v1, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from \"@bufbuild/protobuf\";\nimport { Message, proto3 } from \"@bufbuild/protobuf\";\n\n/**\n * H.265/x265 encoder options for fine-tuning encoding parameters.\n * All fields are optional - sensible defaults are applied based on quality tier.\n *\n * Restrictions (enforced by semantic validation, not protovalidate):\n * - preset: veryslow and placebo are not allowed (minimal quality gain at extreme cost)\n * - profile: main10-intra, main422-10, main444-10 are not allowed (limited playback support)\n * - crf: must be 18-35 (below 18 produces near-lossless, above 35 produces poor quality)\n * - tune: only grain and fastdecode are allowed (zerolatency is reserved for live streaming)\n *\n * Key differences from H.264:\n * - CRF range is 18-35 (stricter than H.264's 15-35)\n * - Levels include 6.0, 6.1, 6.2 (for 8K support)\n * - Tunes are more restrictive (grain, fastdecode only)\n *\n * See docs/codec-implementation/02-x265.md for detailed documentation.\n *\n * @generated from message transcodely.v1.H265Options\n */\nexport class H265Options extends Message<H265Options> {\n /**\n * Encoding speed/quality trade-off preset.\n * Allowed: ultrafast, superfast, veryfast, faster, fast, medium, slow, slower\n * Default: determined by quality_tier (economy=veryfast, standard=medium, premium=slow)\n *\n * @generated from field: optional string preset = 1;\n */\n preset?: string;\n\n /**\n * Content-specific tuning.\n * Allowed: grain, fastdecode\n * Default: none (x265 auto-detection)\n * Note: H.265 supports fewer tune options than H.264\n *\n * @generated from field: optional string tune = 2;\n */\n tune?: string;\n\n /**\n * H.265 profile (feature set).\n * Allowed: main, main10, main-still-picture\n * Default: main (8-bit, best compatibility)\n * Note: main10 enables 10-bit encoding for better quality at same bitrate\n *\n * @generated from field: optional string profile = 3;\n */\n profile?: string;\n\n /**\n * H.265 level (bitrate/resolution limits).\n * Allowed: 3.0, 3.1, 4.0, 4.1, 5.0, 5.1, 5.2, 6.0, 6.1, 6.2\n * Default: auto-selected based on resolution and framerate\n * Note: 6.x levels support 8K resolution\n *\n * @generated from field: optional string level = 4;\n */\n level?: string;\n\n /**\n * Constant Rate Factor (quality-based encoding).\n * Range: 18-35 (lower = higher quality, larger file)\n * Default: determined by quality_tier (economy=32, standard=26, premium=22)\n * Note: Mutually exclusive with bitrate. Stricter range than H.264.\n *\n * @generated from field: optional int32 crf = 5;\n */\n crf?: number;\n\n /**\n * Target bitrate in Kbps (size-based encoding).\n * Range: 100-240000 (capped by level maximum)\n * Note: Mutually exclusive with CRF.\n *\n * @generated from field: optional int32 bitrate = 6;\n */\n bitrate?: number;\n\n /**\n * Maximum bitrate for VBV buffering (Kbps).\n * Range: 100-240000\n *\n * @generated from field: optional int32 maxrate = 7;\n */\n maxrate?: number;\n\n /**\n * VBV buffer size (Kbps).\n * Range: 100-480000\n *\n * @generated from field: optional int32 bufsize = 8;\n */\n bufsize?: number;\n\n /**\n * Maximum keyframe interval (GOP size) in frames.\n * Range: 1-600\n * Default: 250\n *\n * @generated from field: optional int32 keyint = 9;\n */\n keyint?: number;\n\n /**\n * Minimum keyframe interval in frames.\n * Range: 1-60\n * Default: 25\n *\n * @generated from field: optional int32 min_keyint = 10;\n */\n minKeyint?: number;\n\n /**\n * Number of B-frames between I and P frames.\n * Range: 0-16\n * Default: determined by preset\n *\n * @generated from field: optional int32 bframes = 11;\n */\n bframes?: number;\n\n /**\n * Number of reference frames.\n * Range: 1-16\n * Default: determined by preset\n *\n * @generated from field: optional int32 ref = 12;\n */\n ref?: number;\n\n /**\n * Rate control lookahead frames.\n * Range: 0-250\n * Default: determined by preset\n *\n * @generated from field: optional int32 rc_lookahead = 13;\n */\n rcLookahead?: number;\n\n /**\n * Adaptive quantization mode.\n * 0: disabled, 1: variance AQ, 2: auto-variance, 3: auto-variance with bias\n * Default: 1\n *\n * @generated from field: optional int32 aq_mode = 14;\n */\n aqMode?: number;\n\n /**\n * Adaptive quantization strength.\n * Range: 0.0-3.0\n * Default: 1.0\n *\n * @generated from field: optional double aq_strength = 15;\n */\n aqStrength?: number;\n\n /**\n * Psychovisual rate-distortion optimization.\n * Format: \"strength:trellis\" (e.g., \"1.0:0.0\")\n * Default: determined by tune setting\n *\n * @generated from field: optional string psy_rd = 16;\n */\n psyRd?: string;\n\n constructor(data?: PartialMessage<H265Options>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.H265Options\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"preset\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 2, name: \"tune\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 3, name: \"profile\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 4, name: \"level\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 5, name: \"crf\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 6, name: \"bitrate\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 7, name: \"maxrate\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 8, name: \"bufsize\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 9, name: \"keyint\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 10, name: \"min_keyint\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 11, name: \"bframes\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 12, name: \"ref\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 13, name: \"rc_lookahead\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 14, name: \"aq_mode\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 15, name: \"aq_strength\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */, opt: true },\n { no: 16, name: \"psy_rd\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): H265Options {\n return new H265Options().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): H265Options {\n return new H265Options().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): H265Options {\n return new H265Options().fromJsonString(jsonString, options);\n }\n\n static equals(a: H265Options | PlainMessage<H265Options> | undefined, b: H265Options | PlainMessage<H265Options> | undefined): boolean {\n return proto3.util.equals(H265Options, a, b);\n }\n}\n\n","// VP9/libvpx-vp9 codec options for video encoding.\n\n// @generated by protoc-gen-es v1.10.0 with parameter \"target=ts,import_extension=.js\"\n// @generated from file transcodely/v1/codec_vp9.proto (package transcodely.v1, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from \"@bufbuild/protobuf\";\nimport { Message, proto3 } from \"@bufbuild/protobuf\";\n\n/**\n * VP9/libvpx-vp9 encoder options for fine-tuning encoding parameters.\n * All fields are optional - sensible defaults are applied based on quality tier.\n *\n * Key differences from H.264/H.265:\n * - Uses 'speed' (0-8) instead of 'preset'\n * - Uses 'quality' instead of 'tune'\n * - No 'level' parameter (VP9 doesn't have the same level system)\n * - Numeric profiles (0-3) instead of string names\n * - CRF range is 15-50 (different scale than H.264)\n * - Lower maximum bitrate (150 Mbps vs 240 Mbps for H.264)\n *\n * Restrictions (enforced by semantic validation, not protovalidate):\n * - crf: must be 15-50 (0-14 produces lossless, 51-63 produces garbage)\n * - threads: not allowed (infrastructure control)\n *\n * Common mistakes:\n * - Don't use H.264/x264 parameters like 'preset', 'tune', or 'level' with VP9\n * - Use 'speed' (0-8) to control encoding speed instead of 'preset'\n * - Use 'quality' (good/best/realtime) instead of 'tune'\n *\n * See docs/codec-implementation/03-vp9.md for detailed documentation.\n *\n * @generated from message transcodely.v1.VP9Options\n */\nexport class VP9Options extends Message<VP9Options> {\n /**\n * VP9 profile (color format and bit depth).\n * 0: 8-bit 4:2:0 (most compatible, recommended)\n * 1: 8-bit 4:2:2 or 4:4:4\n * 2: 10-bit or 12-bit 4:2:0\n * 3: 10-bit or 12-bit 4:2:2 or 4:4:4\n * Default: 0 (8-bit 4:2:0 for maximum compatibility)\n *\n * @generated from field: optional int32 profile = 1;\n */\n profile?: number;\n\n /**\n * Quality/speed trade-off mode.\n * - \"good\": Balanced quality and speed (default)\n * - \"best\": Highest quality, slowest encoding\n * - \"realtime\": Fastest encoding, lower quality (for live streaming)\n * Default: \"good\"\n *\n * @generated from field: optional string quality = 2;\n */\n quality?: string;\n\n /**\n * Constant Rate Factor (quality-based encoding).\n * Range: 15-50 (lower = higher quality, larger file)\n * Note: VP9 uses a different CRF scale than H.264\n * Default: determined by quality_tier (economy=50, standard=40, premium=30)\n * Mutually exclusive with bitrate.\n *\n * @generated from field: optional int32 crf = 3;\n */\n crf?: number;\n\n /**\n * CPU speed/quality preset (0-8).\n * 0: Slowest encoding, best quality\n * 4: Balanced (recommended for premium)\n * 6: Faster encoding (recommended for standard)\n * 8: Fastest encoding, lower quality (recommended for economy)\n * Default: determined by quality_tier\n *\n * @generated from field: optional int32 speed = 4;\n */\n speed?: number;\n\n /**\n * Target bitrate in Kbps (size-based encoding).\n * Range: 100-150000 (100 Kbps to 150 Mbps)\n * Note: Mutually exclusive with CRF.\n *\n * @generated from field: optional int32 bitrate = 5;\n */\n bitrate?: number;\n\n /**\n * Minimum bitrate in Kbps (for variable bitrate encoding).\n * Range: 100-150000\n * Must be less than or equal to target bitrate if both are set.\n *\n * @generated from field: optional int32 min_bitrate = 6;\n */\n minBitrate?: number;\n\n /**\n * Maximum bitrate in Kbps (for variable bitrate encoding).\n * Range: 100-150000\n * Must be greater than or equal to target bitrate if both are set.\n *\n * @generated from field: optional int32 max_bitrate = 7;\n */\n maxBitrate?: number;\n\n /**\n * Maximum keyframe interval (GOP size) in frames.\n * Range: 1-600\n * Default: 250\n *\n * @generated from field: optional int32 keyint = 8;\n */\n keyint?: number;\n\n /**\n * Number of tile columns for parallel encoding (0-6).\n * Tiles divide the frame for multi-threaded encoding.\n * Higher values = more parallelism but slightly lower compression.\n * Range: 0-6 (0 = auto, 1 = no tiling, 2+ = log2 of tile columns)\n * Default: auto-selected based on resolution\n *\n * @generated from field: optional int32 tile_columns = 9;\n */\n tileColumns?: number;\n\n /**\n * Number of tile rows for parallel encoding (0-2).\n * Range: 0-2 (0 = auto, 1 = no tiling, 2+ = log2 of tile rows)\n * Default: auto-selected based on resolution\n *\n * @generated from field: optional int32 tile_rows = 10;\n */\n tileRows?: number;\n\n constructor(data?: PartialMessage<VP9Options>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.VP9Options\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"profile\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 2, name: \"quality\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 3, name: \"crf\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 4, name: \"speed\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 5, name: \"bitrate\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 6, name: \"min_bitrate\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 7, name: \"max_bitrate\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 8, name: \"keyint\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 9, name: \"tile_columns\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 10, name: \"tile_rows\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): VP9Options {\n return new VP9Options().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): VP9Options {\n return new VP9Options().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): VP9Options {\n return new VP9Options().fromJsonString(jsonString, options);\n }\n\n static equals(a: VP9Options | PlainMessage<VP9Options> | undefined, b: VP9Options | PlainMessage<VP9Options> | undefined): boolean {\n return proto3.util.equals(VP9Options, a, b);\n }\n}\n\n","// AV1/libsvtav1 codec options for video encoding.\n\n// @generated by protoc-gen-es v1.10.0 with parameter \"target=ts,import_extension=.js\"\n// @generated from file transcodely/v1/codec_av1.proto (package transcodely.v1, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from \"@bufbuild/protobuf\";\nimport { Message, proto3 } from \"@bufbuild/protobuf\";\n\n/**\n * AV1/libsvtav1 encoder options for fine-tuning encoding parameters.\n * All fields are optional - sensible defaults are applied based on quality tier.\n *\n * IMPORTANT: AV1 uses NUMERIC values for preset and tune, not strings like H.264/H.265.\n * - preset: 0-13 range, but 0-2 (too slow) and 13 (too fast) are forbidden\n * - tune: 0=VQ (visual quality), 1=PSNR\n *\n * AV1 CRF values are on a different scale than H.264:\n * - H.264 CRF 18-28 ≈ AV1 CRF 30-45 for similar perceptual quality\n * - AV1 is significantly more efficient (smaller files at same quality)\n *\n * Restrictions (enforced by semantic validation, not protovalidate):\n * - preset: must be 3-12 (0-2 too slow for production, 13 too fast/low quality)\n * - crf: must be 20-55 (below 20 is near-lossless, above 55 is garbage)\n *\n * AV1-specific features:\n * - Tiling: Split frame into tiles for parallel encoding (increases speed, slight quality loss)\n * - Film grain synthesis: Preserve texture without encoding grain (reduces bitrate)\n * - Loop filters: Advanced filtering for artifact reduction (dlf, cdef, restoration)\n *\n * See docs/codec-implementation/04-av1.md for detailed documentation.\n *\n * @generated from message transcodely.v1.AV1Options\n */\nexport class AV1Options extends Message<AV1Options> {\n /**\n * Encoding speed/quality trade-off preset (numeric).\n * Allowed: 3-12 (lower = slower/better quality, higher = faster/lower quality)\n * Range: 0-13 at proto level, but 0-2 and 13 are forbidden by semantic validation\n * Default: determined by quality_tier (economy=10, standard=6, premium=4)\n *\n * @generated from field: optional int32 preset = 1;\n */\n preset?: number;\n\n /**\n * Optimization target (numeric).\n * 0: VQ (Visual Quality) - optimizes for perceptual quality\n * 1: PSNR - optimizes for objective metrics\n * Default: 0 (VQ is recommended for production)\n *\n * @generated from field: optional int32 tune = 2;\n */\n tune?: number;\n\n /**\n * Constant Rate Factor (quality-based encoding).\n * Range: 20-55 (lower = higher quality, larger file)\n * Range: 0-63 at proto level, but 0-19 and 56-63 are forbidden by semantic validation\n * Default: determined by quality_tier (economy=45, standard=35, premium=28)\n * Note: AV1 CRF scale is different from H.264 (higher values for similar quality)\n * Note: Mutually exclusive with bitrate.\n *\n * @generated from field: optional int32 crf = 3;\n */\n crf?: number;\n\n /**\n * Target bitrate in Kbps (size-based encoding).\n * Range: 100-100000 (AV1 is more efficient, needs lower bitrate than H.264)\n * Note: Mutually exclusive with CRF.\n *\n * @generated from field: optional int32 bitrate = 4;\n */\n bitrate?: number;\n\n /**\n * Maximum bitrate for rate control (Kbps).\n * Range: 100-100000\n *\n * @generated from field: optional int32 max_bitrate = 5;\n */\n maxBitrate?: number;\n\n /**\n * Maximum keyframe interval (GOP size) in frames.\n * Range: 1-600\n * Default: 250\n *\n * @generated from field: optional int32 keyint = 6;\n */\n keyint?: number;\n\n /**\n * Number of tile columns for parallel encoding.\n * Range: 0-4 (0=auto, 1-4=2^n tiles)\n * Higher values increase encoding speed but may reduce quality slightly\n * Default: 0 (auto-detected based on resolution)\n *\n * @generated from field: optional int32 tile_columns = 7;\n */\n tileColumns?: number;\n\n /**\n * Number of tile rows for parallel encoding.\n * Range: 0-4 (0=auto, 1-4=2^n tiles)\n * Higher values increase encoding speed but may reduce quality slightly\n * Default: 0 (auto-detected based on resolution)\n *\n * @generated from field: optional int32 tile_rows = 8;\n */\n tileRows?: number;\n\n /**\n * Film grain synthesis strength.\n * Range: 0-50 (0=disabled, 1-50=increasing grain synthesis)\n * Preserves film grain texture without encoding it (reduces bitrate significantly)\n * Recommended for film/vintage content with natural grain\n * Default: 0 (disabled)\n *\n * @generated from field: optional int32 film_grain = 9;\n */\n filmGrain?: number;\n\n /**\n * Enable deblocking filter (DLF).\n * Reduces blocking artifacts at tile/block boundaries\n * Default: true\n *\n * @generated from field: optional bool enable_dlf = 10;\n */\n enableDlf?: boolean;\n\n /**\n * Enable Constrained Directional Enhancement Filter (CDEF).\n * Advanced artifact reduction with directional awareness\n * Default: true\n *\n * @generated from field: optional bool enable_cdef = 11;\n */\n enableCdef?: boolean;\n\n /**\n * Enable loop restoration filter.\n * Final pass filtering to improve perceptual quality\n * Default: true\n *\n * @generated from field: optional bool enable_restoration = 12;\n */\n enableRestoration?: boolean;\n\n constructor(data?: PartialMessage<AV1Options>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.AV1Options\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"preset\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 2, name: \"tune\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 3, name: \"crf\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 4, name: \"bitrate\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 5, name: \"max_bitrate\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 6, name: \"keyint\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 7, name: \"tile_columns\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 8, name: \"tile_rows\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 9, name: \"film_grain\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 10, name: \"enable_dlf\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true },\n { no: 11, name: \"enable_cdef\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true },\n { no: 12, name: \"enable_restoration\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): AV1Options {\n return new AV1Options().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): AV1Options {\n return new AV1Options().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): AV1Options {\n return new AV1Options().fromJsonString(jsonString, options);\n }\n\n static equals(a: AV1Options | PlainMessage<AV1Options> | undefined, b: AV1Options | PlainMessage<AV1Options> | undefined): boolean {\n return proto3.util.equals(AV1Options, a, b);\n }\n}\n\n","// HDR and Dolby Vision configuration.\n\n// @generated by protoc-gen-es v1.10.0 with parameter \"target=ts,import_extension=.js\"\n// @generated from file transcodely/v1/hdr.proto (package transcodely.v1, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from \"@bufbuild/protobuf\";\nimport { Message, proto3 } from \"@bufbuild/protobuf\";\n\n/**\n * HDR format.\n *\n * @generated from enum transcodely.v1.HDRFormat\n */\nexport enum HDRFormat {\n /**\n * @generated from enum value: HDR_FORMAT_UNSPECIFIED = 0;\n */\n HDR_FORMAT_UNSPECIFIED = 0,\n\n /**\n * Static metadata (SMPTE ST 2086 + CLL).\n *\n * @generated from enum value: HDR_FORMAT_HDR10 = 1;\n */\n HDR_FORMAT_HDR10 = 1,\n\n /**\n * Dynamic metadata (Samsung).\n *\n * @generated from enum value: HDR_FORMAT_HDR10_PLUS = 2;\n */\n HDR_FORMAT_HDR10_PLUS = 2,\n\n /**\n * Hybrid Log-Gamma (backwards-compatible with SDR).\n *\n * @generated from enum value: HDR_FORMAT_HLG = 3;\n */\n HDR_FORMAT_HLG = 3,\n\n /**\n * Dolby Vision Profile 5 (single-layer, cross-compatible).\n *\n * @generated from enum value: HDR_FORMAT_DOLBY_VISION_5 = 4;\n */\n HDR_FORMAT_DOLBY_VISION_5 = 4,\n\n /**\n * Dolby Vision Profile 8 (MEL, backward-compatible with HDR10).\n *\n * @generated from enum value: HDR_FORMAT_DOLBY_VISION_8 = 5;\n */\n HDR_FORMAT_DOLBY_VISION_8 = 5,\n}\n// Retrieve enum metadata with: proto3.getEnumType(HDRFormat)\nproto3.util.setEnumType(HDRFormat, \"transcodely.v1.HDRFormat\", [\n { no: 0, name: \"HDR_FORMAT_UNSPECIFIED\" },\n { no: 1, name: \"HDR_FORMAT_HDR10\" },\n { no: 2, name: \"HDR_FORMAT_HDR10_PLUS\" },\n { no: 3, name: \"HDR_FORMAT_HLG\" },\n { no: 4, name: \"HDR_FORMAT_DOLBY_VISION_5\" },\n { no: 5, name: \"HDR_FORMAT_DOLBY_VISION_8\" },\n]);\n\n/**\n * HDR processing mode.\n *\n * @generated from enum transcodely.v1.HDRMode\n */\nexport enum HDRMode {\n /**\n * @generated from enum value: HDR_MODE_UNSPECIFIED = 0;\n */\n HDR_MODE_UNSPECIFIED = 0,\n\n /**\n * Preserve input HDR metadata.\n *\n * @generated from enum value: HDR_MODE_PASSTHROUGH = 1;\n */\n HDR_MODE_PASSTHROUGH = 1,\n\n /**\n * Convert HDR to SDR via tone mapping.\n *\n * @generated from enum value: HDR_MODE_TONEMAP = 2;\n */\n HDR_MODE_TONEMAP = 2,\n\n /**\n * Force a specific HDR format on output.\n *\n * @generated from enum value: HDR_MODE_FORCE = 3;\n */\n HDR_MODE_FORCE = 3,\n}\n// Retrieve enum metadata with: proto3.getEnumType(HDRMode)\nproto3.util.setEnumType(HDRMode, \"transcodely.v1.HDRMode\", [\n { no: 0, name: \"HDR_MODE_UNSPECIFIED\" },\n { no: 1, name: \"HDR_MODE_PASSTHROUGH\" },\n { no: 2, name: \"HDR_MODE_TONEMAP\" },\n { no: 3, name: \"HDR_MODE_FORCE\" },\n]);\n\n/**\n * Tone mapping algorithm for HDR to SDR conversion.\n *\n * @generated from enum transcodely.v1.ToneMapping\n */\nexport enum ToneMapping {\n /**\n * @generated from enum value: TONE_MAPPING_UNSPECIFIED = 0;\n */\n UNSPECIFIED = 0,\n\n /**\n * Simple, preserves color relationships. General purpose.\n *\n * @generated from enum value: TONE_MAPPING_REINHARD = 1;\n */\n REINHARD = 1,\n\n /**\n * Film-like response curve. Cinematic content.\n *\n * @generated from enum value: TONE_MAPPING_HABLE = 2;\n */\n HABLE = 2,\n\n /**\n * ITU-R BT.2390 reference. Broadcast (default).\n *\n * @generated from enum value: TONE_MAPPING_BT2390 = 3;\n */\n BT2390 = 3,\n\n /**\n * Smooth highlight rolloff. HDR10+ content.\n *\n * @generated from enum value: TONE_MAPPING_MOBIUS = 4;\n */\n MOBIUS = 4,\n}\n// Retrieve enum metadata with: proto3.getEnumType(ToneMapping)\nproto3.util.setEnumType(ToneMapping, \"transcodely.v1.ToneMapping\", [\n { no: 0, name: \"TONE_MAPPING_UNSPECIFIED\" },\n { no: 1, name: \"TONE_MAPPING_REINHARD\" },\n { no: 2, name: \"TONE_MAPPING_HABLE\" },\n { no: 3, name: \"TONE_MAPPING_BT2390\" },\n { no: 4, name: \"TONE_MAPPING_MOBIUS\" },\n]);\n\n/**\n * HDR configuration for a video variant.\n *\n * @generated from message transcodely.v1.HDRConfig\n */\nexport class HDRConfig extends Message<HDRConfig> {\n /**\n * Target HDR format (required for passthrough and force modes).\n *\n * @generated from field: transcodely.v1.HDRFormat format = 1;\n */\n format = HDRFormat.HDR_FORMAT_UNSPECIFIED;\n\n /**\n * Processing mode (required).\n *\n * @generated from field: transcodely.v1.HDRMode mode = 2;\n */\n mode = HDRMode.HDR_MODE_UNSPECIFIED;\n\n /**\n * Tone mapping algorithm (for tonemap mode).\n *\n * @generated from field: transcodely.v1.ToneMapping tone_mapping = 3;\n */\n toneMapping = ToneMapping.UNSPECIFIED;\n\n /**\n * Target peak brightness in nits (for tonemap and force modes).\n * Range: 100-10000.\n *\n * @generated from field: optional int32 target_peak_nits = 4;\n */\n targetPeakNits?: number;\n\n /**\n * Master Display Color Volume metadata (SMPTE ST 2086).\n * Format: \"G(x,y)B(x,y)R(x,y)WP(x,y)L(max,min)\"\n *\n * @generated from field: optional string master_display = 5;\n */\n masterDisplay?: string;\n\n /**\n * Content Light Level metadata (MaxCLL, MaxFALL).\n * Format: \"MaxCLL,MaxFALL\" (e.g., \"1000,400\").\n *\n * @generated from field: optional string content_light_level = 6;\n */\n contentLightLevel?: string;\n\n /**\n * Dolby Vision RPU file URL (for DV metadata injection).\n *\n * @generated from field: optional string rpu_url = 7;\n */\n rpuUrl?: string;\n\n constructor(data?: PartialMessage<HDRConfig>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.HDRConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"format\", kind: \"enum\", T: proto3.getEnumType(HDRFormat) },\n { no: 2, name: \"mode\", kind: \"enum\", T: proto3.getEnumType(HDRMode) },\n { no: 3, name: \"tone_mapping\", kind: \"enum\", T: proto3.getEnumType(ToneMapping) },\n { no: 4, name: \"target_peak_nits\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 5, name: \"master_display\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 6, name: \"content_light_level\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 7, name: \"rpu_url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): HDRConfig {\n return new HDRConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): HDRConfig {\n return new HDRConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): HDRConfig {\n return new HDRConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: HDRConfig | PlainMessage<HDRConfig> | undefined, b: HDRConfig | PlainMessage<HDRConfig> | undefined): boolean {\n return proto3.util.equals(HDRConfig, a, b);\n }\n}\n\n","// Streaming configuration for HLS/DASH packaging.\n\n// @generated by protoc-gen-es v1.10.0 with parameter \"target=ts,import_extension=.js\"\n// @generated from file transcodely/v1/streaming.proto (package transcodely.v1, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from \"@bufbuild/protobuf\";\nimport { Message, proto3 } from \"@bufbuild/protobuf\";\n\n/**\n * HLS segment format options.\n *\n * @generated from enum transcodely.v1.HLSSegmentFormat\n */\nexport enum HLSSegmentFormat {\n /**\n * Default: use system default (fMP4)\n *\n * @generated from enum value: HLS_SEGMENT_FORMAT_UNSPECIFIED = 0;\n */\n HLS_SEGMENT_FORMAT_UNSPECIFIED = 0,\n\n /**\n * Fragmented MP4 (CMAF) segments.\n * Modern format, efficient, supports HEVC/AV1.\n * File extension: .m4s with .mp4 init segment\n *\n * @generated from enum value: HLS_SEGMENT_FORMAT_FMP4 = 1;\n */\n HLS_SEGMENT_FORMAT_FMP4 = 1,\n\n /**\n * MPEG Transport Stream segments.\n * Legacy format, widest device compatibility.\n * File extension: .ts\n * Note: Does not support HEVC well on some devices.\n *\n * @generated from enum value: HLS_SEGMENT_FORMAT_TS = 2;\n */\n HLS_SEGMENT_FORMAT_TS = 2,\n}\n// Retrieve enum metadata with: proto3.getEnumType(HLSSegmentFormat)\nproto3.util.setEnumType(HLSSegmentFormat, \"transcodely.v1.HLSSegmentFormat\", [\n { no: 0, name: \"HLS_SEGMENT_FORMAT_UNSPECIFIED\" },\n { no: 1, name: \"HLS_SEGMENT_FORMAT_FMP4\" },\n { no: 2, name: \"HLS_SEGMENT_FORMAT_TS\" },\n]);\n\n/**\n * GOP alignment mode options.\n *\n * @generated from enum transcodely.v1.GOPAlignmentMode\n */\nexport enum GOPAlignmentMode {\n /**\n * Default: use system default (aligned)\n *\n * @generated from enum value: GOP_ALIGNMENT_MODE_UNSPECIFIED = 0;\n */\n GOP_ALIGNMENT_MODE_UNSPECIFIED = 0,\n\n /**\n * GOP size equals segment duration.\n * Ensures clean segment boundaries with one keyframe per segment.\n * Recommended for most use cases.\n *\n * @generated from enum value: GOP_ALIGNMENT_MODE_ALIGNED = 1;\n */\n GOP_ALIGNMENT_MODE_ALIGNED = 1,\n\n /**\n * Fixed GOP size independent of segment duration.\n * Use gop_size_seconds to specify the interval.\n * Useful for ad insertion or specific keyframe requirements.\n *\n * @generated from enum value: GOP_ALIGNMENT_MODE_FIXED = 2;\n */\n GOP_ALIGNMENT_MODE_FIXED = 2,\n}\n// Retrieve enum metadata with: proto3.getEnumType(GOPAlignmentMode)\nproto3.util.setEnumType(GOPAlignmentMode, \"transcodely.v1.GOPAlignmentMode\", [\n { no: 0, name: \"GOP_ALIGNMENT_MODE_UNSPECIFIED\" },\n { no: 1, name: \"GOP_ALIGNMENT_MODE_ALIGNED\" },\n { no: 2, name: \"GOP_ALIGNMENT_MODE_FIXED\" },\n]);\n\n/**\n * HLS playlist type options.\n *\n * @generated from enum transcodely.v1.HLSPlaylistType\n */\nexport enum HLSPlaylistType {\n /**\n * Default: use system default (VOD)\n *\n * @generated from enum value: HLS_PLAYLIST_TYPE_UNSPECIFIED = 0;\n */\n HLS_PLAYLIST_TYPE_UNSPECIFIED = 0,\n\n /**\n * VOD playlist - complete, immutable.\n * Contains EXT-X-PLAYLIST-TYPE:VOD and EXT-X-ENDLIST.\n *\n * @generated from enum value: HLS_PLAYLIST_TYPE_VOD = 1;\n */\n HLS_PLAYLIST_TYPE_VOD = 1,\n\n /**\n * Event playlist - append-only.\n * Contains EXT-X-PLAYLIST-TYPE:EVENT.\n * Useful for live-to-VOD transitions.\n *\n * @generated from enum value: HLS_PLAYLIST_TYPE_EVENT = 2;\n */\n HLS_PLAYLIST_TYPE_EVENT = 2,\n}\n// Retrieve enum metadata with: proto3.getEnumType(HLSPlaylistType)\nproto3.util.setEnumType(HLSPlaylistType, \"transcodely.v1.HLSPlaylistType\", [\n { no: 0, name: \"HLS_PLAYLIST_TYPE_UNSPECIFIED\" },\n { no: 1, name: \"HLS_PLAYLIST_TYPE_VOD\" },\n { no: 2, name: \"HLS_PLAYLIST_TYPE_EVENT\" },\n]);\n\n/**\n * StreamingConfig defines packaging options for HLS and DASH outputs.\n * These settings control segment duration, format, and GOP alignment.\n *\n * Best practices:\n * - Segment duration of 4-6 seconds balances latency vs efficiency\n * - GOP alignment ensures clean segment boundaries (recommended)\n * - fMP4 (CMAF) is the modern standard; TS is legacy HLS only\n *\n * @generated from message transcodely.v1.StreamingConfig\n */\nexport class StreamingConfig extends Message<StreamingConfig> {\n /**\n * Segment duration in seconds.\n * This controls how the video is split into chunks for streaming.\n *\n * Recommended values:\n * - 2s: Low latency, more CDN requests\n * - 4s: Good balance (Bitmovin default)\n * - 6s: Apple recommended, fewer requests\n * - 10s: Higher latency, most efficient\n *\n * Default: 6 seconds (Apple recommended)\n * Range: 1-30 seconds\n *\n * @generated from field: optional int32 segment_duration_seconds = 1;\n */\n segmentDurationSeconds?: number;\n\n /**\n * Segment format for HLS outputs.\n * DASH always uses fMP4 regardless of this setting.\n *\n * Options:\n * - FMP4: Fragmented MP4 (CMAF) - modern, recommended\n * - TS: MPEG Transport Stream - legacy, wider device support\n *\n * Default: FMP4 (CMAF)\n *\n * @generated from field: transcodely.v1.HLSSegmentFormat hls_segment_format = 2;\n */\n hlsSegmentFormat = HLSSegmentFormat.HLS_SEGMENT_FORMAT_UNSPECIFIED;\n\n /**\n * GOP (Group of Pictures) alignment mode.\n * Controls how keyframes align with segment boundaries.\n *\n * Options:\n * - ALIGNED: GOP size matches segment duration (recommended)\n * - FIXED: Use fixed GOP size regardless of segment duration\n *\n * Default: ALIGNED\n *\n * @generated from field: transcodely.v1.GOPAlignmentMode gop_alignment = 3;\n */\n gopAlignment = GOPAlignmentMode.GOP_ALIGNMENT_MODE_UNSPECIFIED;\n\n /**\n * Fixed GOP size in seconds (only used when gop_alignment = FIXED).\n * When set, keyframes are inserted at this interval regardless of segment duration.\n *\n * Use cases:\n * - Ad insertion (DAI) requiring keyframes at specific intervals\n * - Multi-bitrate encoding with fixed keyframe positions\n *\n * Default: 2 seconds (when gop_alignment = FIXED)\n * Range: 1-10 seconds\n *\n * @generated from field: optional int32 gop_size_seconds = 4;\n */\n gopSizeSeconds?: number;\n\n /**\n * Whether to generate a master playlist that references all codec variants.\n * When true, outputs with the same resolution but different codecs are\n * grouped into a single adaptive manifest.\n *\n * Example: 1080p H.264 + 1080p H.265 + 1080p AV1 in one master.m3u8\n *\n * Default: true (recommended for multi-codec delivery)\n *\n * @generated from field: optional bool multi_codec_master = 5;\n */\n multiCodecMaster?: boolean;\n\n /**\n * HLS playlist type.\n * Controls the EXT-X-PLAYLIST-TYPE tag in HLS playlists.\n *\n * Options:\n * - VOD: Complete playlist, no updates (for VOD content)\n * - EVENT: Append-only playlist (for live-to-VOD)\n *\n * Default: VOD\n *\n * @generated from field: transcodely.v1.HLSPlaylistType hls_playlist_type = 6;\n */\n hlsPlaylistType = HLSPlaylistType.HLS_PLAYLIST_TYPE_UNSPECIFIED;\n\n /**\n * Custom name for HLS master playlist (without extension).\n * Must contain only alphanumeric characters, hyphens, and underscores.\n * Do NOT include the .m3u8 extension.\n *\n * Example: \"index\" produces \"index.m3u8\"\n * Default: \"master\" produces \"master.m3u8\"\n *\n * @generated from field: optional string hls_master_name = 10;\n */\n hlsMasterName?: string;\n\n /**\n * Custom name for DASH manifest (without extension).\n * Must contain only alphanumeric characters, hyphens, and underscores.\n * Do NOT include the .mpd extension.\n *\n * Example: \"stream\" produces \"stream.mpd\"\n * Default: \"manifest\" produces \"manifest.mpd\"\n *\n * @generated from field: optional string dash_manifest_name = 11;\n */\n dashManifestName?: string;\n\n /**\n * Pattern for HLS variant playlist names.\n * Variables: {codec}, {resolution}, {bitrate}, {index}\n *\n * Example: \"video_{resolution}\" produces \"video_1080p.m3u8\"\n * Default: \"{codec}_{resolution}\" produces \"h264_1080p.m3u8\"\n *\n * @generated from field: optional string hls_variant_pattern = 12;\n */\n hlsVariantPattern?: string;\n\n constructor(data?: PartialMessage<StreamingConfig>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.StreamingConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"segment_duration_seconds\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 2, name: \"hls_segment_format\", kind: \"enum\", T: proto3.getEnumType(HLSSegmentFormat) },\n { no: 3, name: \"gop_alignment\", kind: \"enum\", T: proto3.getEnumType(GOPAlignmentMode) },\n { no: 4, name: \"gop_size_seconds\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 5, name: \"multi_codec_master\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true },\n { no: 6, name: \"hls_playlist_type\", kind: \"enum\", T: proto3.getEnumType(HLSPlaylistType) },\n { no: 10, name: \"hls_master_name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 11, name: \"dash_manifest_name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 12, name: \"hls_variant_pattern\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): StreamingConfig {\n return new StreamingConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): StreamingConfig {\n return new StreamingConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): StreamingConfig {\n return new StreamingConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: StreamingConfig | PlainMessage<StreamingConfig> | undefined, b: StreamingConfig | PlainMessage<StreamingConfig> | undefined): boolean {\n return proto3.util.equals(StreamingConfig, a, b);\n }\n}\n\n","// Subtitle and caption processing configuration.\n\n// @generated by protoc-gen-es v1.10.0 with parameter \"target=ts,import_extension=.js\"\n// @generated from file transcodely/v1/subtitles.proto (package transcodely.v1, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from \"@bufbuild/protobuf\";\nimport { Message, proto3 } from \"@bufbuild/protobuf\";\n\n/**\n * Subtitle processing operation.\n *\n * @generated from enum transcodely.v1.SubtitleOperation\n */\nexport enum SubtitleOperation {\n /**\n * @generated from enum value: SUBTITLE_OPERATION_UNSPECIFIED = 0;\n */\n UNSPECIFIED = 0,\n\n /**\n * Mux input subtitle stream into output container.\n *\n * @generated from enum value: SUBTITLE_OPERATION_PASSTHROUGH = 1;\n */\n PASSTHROUGH = 1,\n\n /**\n * Convert between subtitle formats (e.g., SRT to WebVTT).\n *\n * @generated from enum value: SUBTITLE_OPERATION_CONVERT = 2;\n */\n CONVERT = 2,\n\n /**\n * Hardcode subtitles into the video stream (re-render).\n *\n * @generated from enum value: SUBTITLE_OPERATION_BURN_IN = 3;\n */\n BURN_IN = 3,\n\n /**\n * Extract subtitle stream to a separate file.\n *\n * @generated from enum value: SUBTITLE_OPERATION_EXTRACT = 4;\n */\n EXTRACT = 4,\n}\n// Retrieve enum metadata with: proto3.getEnumType(SubtitleOperation)\nproto3.util.setEnumType(SubtitleOperation, \"transcodely.v1.SubtitleOperation\", [\n { no: 0, name: \"SUBTITLE_OPERATION_UNSPECIFIED\" },\n { no: 1, name: \"SUBTITLE_OPERATION_PASSTHROUGH\" },\n { no: 2, name: \"SUBTITLE_OPERATION_CONVERT\" },\n { no: 3, name: \"SUBTITLE_OPERATION_BURN_IN\" },\n { no: 4, name: \"SUBTITLE_OPERATION_EXTRACT\" },\n]);\n\n/**\n * Subtitle format.\n *\n * @generated from enum transcodely.v1.SubtitleFormat\n */\nexport enum SubtitleFormat {\n /**\n * @generated from enum value: SUBTITLE_FORMAT_UNSPECIFIED = 0;\n */\n UNSPECIFIED = 0,\n\n /**\n * @generated from enum value: SUBTITLE_FORMAT_SRT = 1;\n */\n SRT = 1,\n\n /**\n * @generated from enum value: SUBTITLE_FORMAT_WEBVTT = 2;\n */\n WEBVTT = 2,\n\n /**\n * @generated from enum value: SUBTITLE_FORMAT_TTML = 3;\n */\n TTML = 3,\n\n /**\n * @generated from enum value: SUBTITLE_FORMAT_ASS = 4;\n */\n ASS = 4,\n}\n// Retrieve enum metadata with: proto3.getEnumType(SubtitleFormat)\nproto3.util.setEnumType(SubtitleFormat, \"transcodely.v1.SubtitleFormat\", [\n { no: 0, name: \"SUBTITLE_FORMAT_UNSPECIFIED\" },\n { no: 1, name: \"SUBTITLE_FORMAT_SRT\" },\n { no: 2, name: \"SUBTITLE_FORMAT_WEBVTT\" },\n { no: 3, name: \"SUBTITLE_FORMAT_TTML\" },\n { no: 4, name: \"SUBTITLE_FORMAT_ASS\" },\n]);\n\n/**\n * Styling options for burn-in subtitles.\n *\n * @generated from message transcodely.v1.BurnInStyle\n */\nexport class BurnInStyle extends Message<BurnInStyle> {\n /**\n * Font family name. Default: \"Arial\".\n *\n * @generated from field: optional string font_family = 1;\n */\n fontFamily?: string;\n\n /**\n * Font size in pixels. Default: 24.\n *\n * @generated from field: optional int32 font_size = 2;\n */\n fontSize?: number;\n\n /**\n * Font color as hex string (e.g., \"#FFFFFF\"). Default: \"#FFFFFF\".\n *\n * @generated from field: optional string font_color = 3;\n */\n fontColor?: string;\n\n /**\n * Outline color as hex string. Default: \"#000000\".\n *\n * @generated from field: optional string outline_color = 4;\n */\n outlineColor?: string;\n\n /**\n * Outline width in pixels. Default: 2.\n *\n * @generated from field: optional int32 outline_width = 5;\n */\n outlineWidth?: number;\n\n /**\n * Bottom margin in pixels. Default: 30.\n *\n * @generated from field: optional int32 margin_bottom = 6;\n */\n marginBottom?: number;\n\n constructor(data?: PartialMessage<BurnInStyle>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.BurnInStyle\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"font_family\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 2, name: \"font_size\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 3, name: \"font_color\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 4, name: \"outline_color\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 5, name: \"outline_width\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 6, name: \"margin_bottom\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): BurnInStyle {\n return new BurnInStyle().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): BurnInStyle {\n return new BurnInStyle().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): BurnInStyle {\n return new BurnInStyle().fromJsonString(jsonString, options);\n }\n\n static equals(a: BurnInStyle | PlainMessage<BurnInStyle> | undefined, b: BurnInStyle | PlainMessage<BurnInStyle> | undefined): boolean {\n return proto3.util.equals(BurnInStyle, a, b);\n }\n}\n\n/**\n * Subtitle track configuration for an output.\n *\n * @generated from message transcodely.v1.SubtitleTrack\n */\nexport class SubtitleTrack extends Message<SubtitleTrack> {\n /**\n * Processing operation (required).\n *\n * @generated from field: transcodely.v1.SubtitleOperation operation = 1;\n */\n operation = SubtitleOperation.UNSPECIFIED;\n\n /**\n * Input stream index (mutually exclusive with source_url).\n * 0-based index of the subtitle stream in the input file.\n *\n * @generated from field: optional int32 source_stream_index = 2;\n */\n sourceStreamIndex?: number;\n\n /**\n * External subtitle file URL (mutually exclusive with source_stream_index).\n * Supports gs://, s3://, https:// schemes.\n *\n * @generated from field: optional string source_url = 3;\n */\n sourceUrl?: string;\n\n /**\n * Source subtitle format.\n *\n * @generated from field: transcodely.v1.SubtitleFormat input_format = 4;\n */\n inputFormat = SubtitleFormat.UNSPECIFIED;\n\n /**\n * Target subtitle format (for convert and extract operations).\n *\n * @generated from field: transcodely.v1.SubtitleFormat output_format = 5;\n */\n outputFormat = SubtitleFormat.UNSPECIFIED;\n\n /**\n * ISO 639-2 language code (e.g., \"eng\", \"spa\", \"fra\").\n *\n * @generated from field: optional string language = 6;\n */\n language?: string;\n\n /**\n * Human-readable label (e.g., \"English\", \"Spanish (CC)\").\n *\n * @generated from field: optional string label = 7;\n */\n label?: string;\n\n /**\n * Whether this is the default subtitle track.\n *\n * @generated from field: optional bool is_default = 8;\n */\n isDefault?: boolean;\n\n /**\n * Whether this track is for hearing-impaired viewers (SDH/CC).\n *\n * @generated from field: optional bool hearing_impaired = 9;\n */\n hearingImpaired?: boolean;\n\n /**\n * Whether this is a forced narrative subtitle track.\n *\n * @generated from field: optional bool forced = 10;\n */\n forced?: boolean;\n\n /**\n * Styling options for burn-in operation.\n *\n * @generated from field: optional transcodely.v1.BurnInStyle burn_in_style = 11;\n */\n burnInStyle?: BurnInStyle;\n\n constructor(data?: PartialMessage<SubtitleTrack>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.SubtitleTrack\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"operation\", kind: \"enum\", T: proto3.getEnumType(SubtitleOperation) },\n { no: 2, name: \"source_stream_index\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 3, name: \"source_url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 4, name: \"input_format\", kind: \"enum\", T: proto3.getEnumType(SubtitleFormat) },\n { no: 5, name: \"output_format\", kind: \"enum\", T: proto3.getEnumType(SubtitleFormat) },\n { no: 6, name: \"language\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 7, name: \"label\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 8, name: \"is_default\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true },\n { no: 9, name: \"hearing_impaired\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true },\n { no: 10, name: \"forced\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true },\n { no: 11, name: \"burn_in_style\", kind: \"message\", T: BurnInStyle, opt: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): SubtitleTrack {\n return new SubtitleTrack().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): SubtitleTrack {\n return new SubtitleTrack().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): SubtitleTrack {\n return new SubtitleTrack().fromJsonString(jsonString, options);\n }\n\n static equals(a: SubtitleTrack | PlainMessage<SubtitleTrack> | undefined, b: SubtitleTrack | PlainMessage<SubtitleTrack> | undefined): boolean {\n return proto3.util.equals(SubtitleTrack, a, b);\n }\n}\n\n","// DRM (Digital Rights Management) content protection configuration.\n\n// @generated by protoc-gen-es v1.10.0 with parameter \"target=ts,import_extension=.js\"\n// @generated from file transcodely/v1/drm.proto (package transcodely.v1, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from \"@bufbuild/protobuf\";\nimport { Message, proto3 } from \"@bufbuild/protobuf\";\n\n/**\n * DRM system.\n *\n * @generated from enum transcodely.v1.DRMSystem\n */\nexport enum DRMSystem {\n /**\n * @generated from enum value: DRM_SYSTEM_UNSPECIFIED = 0;\n */\n DRM_SYSTEM_UNSPECIFIED = 0,\n\n /**\n * Google Widevine (Android, Chrome, most browsers).\n *\n * @generated from enum value: DRM_SYSTEM_WIDEVINE = 1;\n */\n DRM_SYSTEM_WIDEVINE = 1,\n\n /**\n * Apple FairPlay (iOS, Safari, Apple TV).\n *\n * @generated from enum value: DRM_SYSTEM_FAIRPLAY = 2;\n */\n DRM_SYSTEM_FAIRPLAY = 2,\n\n /**\n * Microsoft PlayReady (Windows, Xbox, Smart TVs).\n *\n * @generated from enum value: DRM_SYSTEM_PLAYREADY = 3;\n */\n DRM_SYSTEM_PLAYREADY = 3,\n}\n// Retrieve enum metadata with: proto3.getEnumType(DRMSystem)\nproto3.util.setEnumType(DRMSystem, \"transcodely.v1.DRMSystem\", [\n { no: 0, name: \"DRM_SYSTEM_UNSPECIFIED\" },\n { no: 1, name: \"DRM_SYSTEM_WIDEVINE\" },\n { no: 2, name: \"DRM_SYSTEM_FAIRPLAY\" },\n { no: 3, name: \"DRM_SYSTEM_PLAYREADY\" },\n]);\n\n/**\n * Encryption scheme.\n *\n * @generated from enum transcodely.v1.EncryptionScheme\n */\nexport enum EncryptionScheme {\n /**\n * @generated from enum value: ENCRYPTION_SCHEME_UNSPECIFIED = 0;\n */\n UNSPECIFIED = 0,\n\n /**\n * AES-CTR mode (Widevine + PlayReady).\n *\n * @generated from enum value: ENCRYPTION_SCHEME_CENC = 1;\n */\n CENC = 1,\n\n /**\n * AES-CBC mode (FairPlay + Widevine).\n *\n * @generated from enum value: ENCRYPTION_SCHEME_CBCS = 2;\n */\n CBCS = 2,\n}\n// Retrieve enum metadata with: proto3.getEnumType(EncryptionScheme)\nproto3.util.setEnumType(EncryptionScheme, \"transcodely.v1.EncryptionScheme\", [\n { no: 0, name: \"ENCRYPTION_SCHEME_UNSPECIFIED\" },\n { no: 1, name: \"ENCRYPTION_SCHEME_CENC\" },\n { no: 2, name: \"ENCRYPTION_SCHEME_CBCS\" },\n]);\n\n/**\n * Bring Your Own Key configuration.\n * Client provides their own encryption keys.\n *\n * @generated from message transcodely.v1.BYOKConfig\n */\nexport class BYOKConfig extends Message<BYOKConfig> {\n /**\n * Key identifier (32 hex characters).\n *\n * @generated from field: string key_id = 1;\n */\n keyId = \"\";\n\n /**\n * Content encryption key (32 hex characters).\n *\n * @generated from field: string key = 2;\n */\n key = \"\";\n\n /**\n * Widevine PSSH box (base64-encoded, optional).\n *\n * @generated from field: optional string pssh_widevine = 3;\n */\n psshWidevine?: string;\n\n /**\n * PlayReady PSSH XML (optional).\n *\n * @generated from field: optional string pssh_playready = 4;\n */\n psshPlayready?: string;\n\n /**\n * FairPlay initialization vector (32 hex characters).\n *\n * @generated from field: optional string fairplay_iv = 5;\n */\n fairplayIv?: string;\n\n /**\n * FairPlay key server URI (skd:// scheme).\n *\n * @generated from field: optional string fairplay_uri = 6;\n */\n fairplayUri?: string;\n\n constructor(data?: PartialMessage<BYOKConfig>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.BYOKConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"key_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"key\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"pssh_widevine\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 4, name: \"pssh_playready\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 5, name: \"fairplay_iv\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 6, name: \"fairplay_uri\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): BYOKConfig {\n return new BYOKConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): BYOKConfig {\n return new BYOKConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): BYOKConfig {\n return new BYOKConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: BYOKConfig | PlainMessage<BYOKConfig> | undefined, b: BYOKConfig | PlainMessage<BYOKConfig> | undefined): boolean {\n return proto3.util.equals(BYOKConfig, a, b);\n }\n}\n\n/**\n * Key server configuration.\n * Worker contacts the key server at encoding time.\n *\n * @generated from message transcodely.v1.KeyServerConfig\n */\nexport class KeyServerConfig extends Message<KeyServerConfig> {\n /**\n * License server endpoint URL.\n *\n * @generated from field: string license_server_url = 1;\n */\n licenseServerUrl = \"\";\n\n /**\n * Authentication token for the key server.\n *\n * @generated from field: optional string auth_token = 2;\n */\n authToken?: string;\n\n /**\n * Content identifier for key derivation.\n *\n * @generated from field: optional string content_id = 3;\n */\n contentId?: string;\n\n constructor(data?: PartialMessage<KeyServerConfig>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.KeyServerConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"license_server_url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"auth_token\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 3, name: \"content_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): KeyServerConfig {\n return new KeyServerConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): KeyServerConfig {\n return new KeyServerConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): KeyServerConfig {\n return new KeyServerConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: KeyServerConfig | PlainMessage<KeyServerConfig> | undefined, b: KeyServerConfig | PlainMessage<KeyServerConfig> | undefined): boolean {\n return proto3.util.equals(KeyServerConfig, a, b);\n }\n}\n\n/**\n * DRM configuration for an output.\n * Only valid on streaming outputs (HLS, DASH, ADAPTIVE).\n *\n * @generated from message transcodely.v1.DRMConfig\n */\nexport class DRMConfig extends Message<DRMConfig> {\n /**\n * DRM systems to apply (at least one required).\n *\n * @generated from field: repeated transcodely.v1.DRMSystem systems = 1;\n */\n systems: DRMSystem[] = [];\n\n /**\n * Encryption scheme (required).\n *\n * @generated from field: transcodely.v1.EncryptionScheme scheme = 2;\n */\n scheme = EncryptionScheme.UNSPECIFIED;\n\n /**\n * BYOK configuration (mutually exclusive with key_server).\n *\n * @generated from field: optional transcodely.v1.BYOKConfig byok = 3;\n */\n byok?: BYOKConfig;\n\n /**\n * Key server configuration (mutually exclusive with byok).\n *\n * @generated from field: optional transcodely.v1.KeyServerConfig key_server = 4;\n */\n keyServer?: KeyServerConfig;\n\n /**\n * Unencrypted duration at start in seconds (for ad insertion).\n * Range: 0-30. Default: 0.\n *\n * @generated from field: optional double clear_lead_seconds = 5;\n */\n clearLeadSeconds?: number;\n\n constructor(data?: PartialMessage<DRMConfig>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.DRMConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"systems\", kind: \"enum\", T: proto3.getEnumType(DRMSystem), repeated: true },\n { no: 2, name: \"scheme\", kind: \"enum\", T: proto3.getEnumType(EncryptionScheme) },\n { no: 3, name: \"byok\", kind: \"message\", T: BYOKConfig, opt: true },\n { no: 4, name: \"key_server\", kind: \"message\", T: KeyServerConfig, opt: true },\n { no: 5, name: \"clear_lead_seconds\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */, opt: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): DRMConfig {\n return new DRMConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): DRMConfig {\n return new DRMConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): DRMConfig {\n return new DRMConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: DRMConfig | PlainMessage<DRMConfig> | undefined, b: DRMConfig | PlainMessage<DRMConfig> | undefined): boolean {\n return proto3.util.equals(DRMConfig, a, b);\n }\n}\n\n","// Content-aware encoding configuration.\n\n// @generated by protoc-gen-es v1.10.0 with parameter \"target=ts,import_extension=.js\"\n// @generated from file transcodely/v1/content_aware.proto (package transcodely.v1, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from \"@bufbuild/protobuf\";\nimport { Message, proto3 } from \"@bufbuild/protobuf\";\nimport { Resolution } from \"./common_pb.js\";\n\n/**\n * Content-aware encoding mode.\n *\n * @generated from enum transcodely.v1.ContentAwareMode\n */\nexport enum ContentAwareMode {\n /**\n * @generated from enum value: CONTENT_AWARE_MODE_UNSPECIFIED = 0;\n */\n UNSPECIFIED = 0,\n\n /**\n * Optimize CRF for target VMAF on specific content.\n *\n * @generated from enum value: CONTENT_AWARE_MODE_PER_TITLE = 1;\n */\n PER_TITLE = 1,\n\n /**\n * Generate optimal bitrate ladder automatically.\n *\n * @generated from enum value: CONTENT_AWARE_MODE_AUTO_ABR = 2;\n */\n AUTO_ABR = 2,\n}\n// Retrieve enum metadata with: proto3.getEnumType(ContentAwareMode)\nproto3.util.setEnumType(ContentAwareMode, \"transcodely.v1.ContentAwareMode\", [\n { no: 0, name: \"CONTENT_AWARE_MODE_UNSPECIFIED\" },\n { no: 1, name: \"CONTENT_AWARE_MODE_PER_TITLE\" },\n { no: 2, name: \"CONTENT_AWARE_MODE_AUTO_ABR\" },\n]);\n\n/**\n * Auto ABR ladder generation constraints.\n *\n * @generated from message transcodely.v1.AutoABRConfig\n */\nexport class AutoABRConfig extends Message<AutoABRConfig> {\n /**\n * Minimum number of variants in the ladder.\n * Default: 2.\n *\n * @generated from field: optional int32 min_variants = 1;\n */\n minVariants?: number;\n\n /**\n * Maximum number of variants in the ladder.\n * Default: 8.\n *\n * @generated from field: optional int32 max_variants = 2;\n */\n maxVariants?: number;\n\n /**\n * Lowest resolution in the generated ladder.\n *\n * @generated from field: transcodely.v1.Resolution min_resolution = 3;\n */\n minResolution = Resolution.RESOLUTION_UNSPECIFIED;\n\n /**\n * Highest resolution in the generated ladder.\n *\n * @generated from field: transcodely.v1.Resolution max_resolution = 4;\n */\n maxResolution = Resolution.RESOLUTION_UNSPECIFIED;\n\n constructor(data?: PartialMessage<AutoABRConfig>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.AutoABRConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"min_variants\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 2, name: \"max_variants\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 3, name: \"min_resolution\", kind: \"enum\", T: proto3.getEnumType(Resolution) },\n { no: 4, name: \"max_resolution\", kind: \"enum\", T: proto3.getEnumType(Resolution) },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): AutoABRConfig {\n return new AutoABRConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): AutoABRConfig {\n return new AutoABRConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): AutoABRConfig {\n return new AutoABRConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: AutoABRConfig | PlainMessage<AutoABRConfig> | undefined, b: AutoABRConfig | PlainMessage<AutoABRConfig> | undefined): boolean {\n return proto3.util.equals(AutoABRConfig, a, b);\n }\n}\n\n/**\n * Content-aware encoding configuration for an output.\n *\n * @generated from message transcodely.v1.ContentAwareConfig\n */\nexport class ContentAwareConfig extends Message<ContentAwareConfig> {\n /**\n * Encoding mode (required).\n *\n * @generated from field: transcodely.v1.ContentAwareMode mode = 1;\n */\n mode = ContentAwareMode.UNSPECIFIED;\n\n /**\n * Override VMAF target (70-99).\n * Defaults from quality tier: economy=88, standard=93, premium=97.\n *\n * @generated from field: optional double vmaf_target = 2;\n */\n vmafTarget?: number;\n\n /**\n * Auto ABR constraints (only for auto_abr mode).\n *\n * @generated from field: optional transcodely.v1.AutoABRConfig auto_abr = 3;\n */\n autoAbr?: AutoABRConfig;\n\n constructor(data?: PartialMessage<ContentAwareConfig>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.ContentAwareConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"mode\", kind: \"enum\", T: proto3.getEnumType(ContentAwareMode) },\n { no: 2, name: \"vmaf_target\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */, opt: true },\n { no: 3, name: \"auto_abr\", kind: \"message\", T: AutoABRConfig, opt: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ContentAwareConfig {\n return new ContentAwareConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ContentAwareConfig {\n return new ContentAwareConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ContentAwareConfig {\n return new ContentAwareConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: ContentAwareConfig | PlainMessage<ContentAwareConfig> | undefined, b: ContentAwareConfig | PlainMessage<ContentAwareConfig> | undefined): boolean {\n return proto3.util.equals(ContentAwareConfig, a, b);\n }\n}\n\n/**\n * Content analysis results from extended probe.\n *\n * @generated from message transcodely.v1.ContentAnalysis\n */\nexport class ContentAnalysis extends Message<ContentAnalysis> {\n /**\n * Overall encoding complexity (0-1).\n *\n * @generated from field: double complexity_score = 1;\n */\n complexityScore = 0;\n\n /**\n * Temporal complexity - amount of motion (0-1).\n *\n * @generated from field: double motion_score = 2;\n */\n motionScore = 0;\n\n /**\n * Spatial detail complexity (0-1).\n *\n * @generated from field: double texture_score = 3;\n */\n textureScore = 0;\n\n /**\n * Detected content type.\n *\n * @generated from field: string content_type = 4;\n */\n contentType = \"\";\n\n constructor(data?: PartialMessage<ContentAnalysis>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.ContentAnalysis\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"complexity_score\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */ },\n { no: 2, name: \"motion_score\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */ },\n { no: 3, name: \"texture_score\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */ },\n { no: 4, name: \"content_type\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ContentAnalysis {\n return new ContentAnalysis().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ContentAnalysis {\n return new ContentAnalysis().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ContentAnalysis {\n return new ContentAnalysis().fromJsonString(jsonString, options);\n }\n\n static equals(a: ContentAnalysis | PlainMessage<ContentAnalysis> | undefined, b: ContentAnalysis | PlainMessage<ContentAnalysis> | undefined): boolean {\n return proto3.util.equals(ContentAnalysis, a, b);\n }\n}\n\n","// Origin service for managing storage origins (inputs/outputs).\n// Origins are storage locations (GCS, S3, HTTP) used for video inputs and outputs.\n\n// @generated by protoc-gen-es v1.10.0 with parameter \"target=ts,import_extension=.js\"\n// @generated from file transcodely/v1/origin.proto (package transcodely.v1, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from \"@bufbuild/protobuf\";\nimport { Message, proto3, Timestamp } from \"@bufbuild/protobuf\";\nimport { PaginationRequest, PaginationResponse } from \"./common_pb.js\";\n\n/**\n * Storage provider type.\n *\n * @generated from enum transcodely.v1.OriginProvider\n */\nexport enum OriginProvider {\n /**\n * @generated from enum value: ORIGIN_PROVIDER_UNSPECIFIED = 0;\n */\n UNSPECIFIED = 0,\n\n /**\n * Google Cloud Storage (gs://bucket/path).\n *\n * @generated from enum value: ORIGIN_PROVIDER_GCS = 1;\n */\n GCS = 1,\n\n /**\n * Amazon S3 (s3://bucket/path).\n *\n * @generated from enum value: ORIGIN_PROVIDER_S3 = 2;\n */\n S3 = 2,\n\n /**\n * HTTP/HTTPS URL (https://cdn.example.com/path).\n * Read-only provider.\n *\n * @generated from enum value: ORIGIN_PROVIDER_HTTP = 3;\n */\n HTTP = 3,\n\n /**\n * Transcodely-managed storage (auto-created during hosting provisioning).\n * Read-only — cannot be modified by users.\n *\n * @generated from enum value: ORIGIN_PROVIDER_TRANSCODELY = 4;\n */\n TRANSCODELY = 4,\n\n /**\n * Cloudflare R2 (object storage). S3-compatible underneath, but exposed as\n * a first-class provider with an ergonomic account-id-based config shape.\n *\n * @generated from enum value: ORIGIN_PROVIDER_R2 = 5;\n */\n R2 = 5,\n}\n// Retrieve enum metadata with: proto3.getEnumType(OriginProvider)\nproto3.util.setEnumType(OriginProvider, \"transcodely.v1.OriginProvider\", [\n { no: 0, name: \"ORIGIN_PROVIDER_UNSPECIFIED\" },\n { no: 1, name: \"ORIGIN_PROVIDER_GCS\" },\n { no: 2, name: \"ORIGIN_PROVIDER_S3\" },\n { no: 3, name: \"ORIGIN_PROVIDER_HTTP\" },\n { no: 4, name: \"ORIGIN_PROVIDER_TRANSCODELY\" },\n { no: 5, name: \"ORIGIN_PROVIDER_R2\" },\n]);\n\n/**\n * Cloudflare R2 jurisdiction (data residency).\n * Controls the endpoint hostname when account_id is used to derive the URL.\n *\n * @generated from enum transcodely.v1.R2Jurisdiction\n */\nexport enum R2Jurisdiction {\n /**\n * @generated from enum value: R2_JURISDICTION_UNSPECIFIED = 0;\n */\n UNSPECIFIED = 0,\n\n /**\n * Default jurisdiction — endpoint is <account_id>.r2.cloudflarestorage.com.\n *\n * @generated from enum value: R2_JURISDICTION_DEFAULT = 1;\n */\n DEFAULT = 1,\n\n /**\n * EU jurisdiction — endpoint is <account_id>.eu.r2.cloudflarestorage.com.\n *\n * @generated from enum value: R2_JURISDICTION_EU = 2;\n */\n EU = 2,\n\n /**\n * FedRAMP jurisdiction — endpoint is <account_id>.fedramp.r2.cloudflarestorage.com.\n *\n * @generated from enum value: R2_JURISDICTION_FEDRAMP = 3;\n */\n FEDRAMP = 3,\n}\n// Retrieve enum metadata with: proto3.getEnumType(R2Jurisdiction)\nproto3.util.setEnumType(R2Jurisdiction, \"transcodely.v1.R2Jurisdiction\", [\n { no: 0, name: \"R2_JURISDICTION_UNSPECIFIED\" },\n { no: 1, name: \"R2_JURISDICTION_DEFAULT\" },\n { no: 2, name: \"R2_JURISDICTION_EU\" },\n { no: 3, name: \"R2_JURISDICTION_FEDRAMP\" },\n]);\n\n/**\n * Storage permission declared by the customer.\n *\n * @generated from enum transcodely.v1.OriginPermission\n */\nexport enum OriginPermission {\n /**\n * @generated from enum value: ORIGIN_PERMISSION_UNSPECIFIED = 0;\n */\n UNSPECIFIED = 0,\n\n /**\n * Read access (list and download objects).\n *\n * @generated from enum value: ORIGIN_PERMISSION_READ = 1;\n */\n READ = 1,\n\n /**\n * Write access (upload objects).\n *\n * @generated from enum value: ORIGIN_PERMISSION_WRITE = 2;\n */\n WRITE = 2,\n}\n// Retrieve enum metadata with: proto3.getEnumType(OriginPermission)\nproto3.util.setEnumType(OriginPermission, \"transcodely.v1.OriginPermission\", [\n { no: 0, name: \"ORIGIN_PERMISSION_UNSPECIFIED\" },\n { no: 1, name: \"ORIGIN_PERMISSION_READ\" },\n { no: 2, name: \"ORIGIN_PERMISSION_WRITE\" },\n]);\n\n/**\n * Origin status.\n *\n * @generated from enum transcodely.v1.OriginStatus\n */\nexport enum OriginStatus {\n /**\n * @generated from enum value: ORIGIN_STATUS_UNSPECIFIED = 0;\n */\n UNSPECIFIED = 0,\n\n /**\n * Origin is active and can be used for jobs.\n *\n * @generated from enum value: ORIGIN_STATUS_ACTIVE = 1;\n */\n ACTIVE = 1,\n\n /**\n * Origin failed validation (credentials or permissions issue).\n *\n * @generated from enum value: ORIGIN_STATUS_FAILED = 2;\n */\n FAILED = 2,\n\n /**\n * Origin has been archived (soft deleted).\n *\n * @generated from enum value: ORIGIN_STATUS_ARCHIVED = 3;\n */\n ARCHIVED = 3,\n}\n// Retrieve enum metadata with: proto3.getEnumType(OriginStatus)\nproto3.util.setEnumType(OriginStatus, \"transcodely.v1.OriginStatus\", [\n { no: 0, name: \"ORIGIN_STATUS_UNSPECIFIED\" },\n { no: 1, name: \"ORIGIN_STATUS_ACTIVE\" },\n { no: 2, name: \"ORIGIN_STATUS_FAILED\" },\n { no: 3, name: \"ORIGIN_STATUS_ARCHIVED\" },\n]);\n\n/**\n * GCS credentials using service account JSON.\n *\n * @generated from message transcodely.v1.GcsCredentials\n */\nexport class GcsCredentials extends Message<GcsCredentials> {\n /**\n * Service account JSON key file contents.\n * This is the full JSON content from a service account key download.\n *\n * @generated from field: string service_account_json = 1;\n */\n serviceAccountJson = \"\";\n\n constructor(data?: PartialMessage<GcsCredentials>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.GcsCredentials\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"service_account_json\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GcsCredentials {\n return new GcsCredentials().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GcsCredentials {\n return new GcsCredentials().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GcsCredentials {\n return new GcsCredentials().fromJsonString(jsonString, options);\n }\n\n static equals(a: GcsCredentials | PlainMessage<GcsCredentials> | undefined, b: GcsCredentials | PlainMessage<GcsCredentials> | undefined): boolean {\n return proto3.util.equals(GcsCredentials, a, b);\n }\n}\n\n/**\n * S3 credentials using access keys.\n *\n * @generated from message transcodely.v1.S3Credentials\n */\nexport class S3Credentials extends Message<S3Credentials> {\n /**\n * AWS access key ID.\n *\n * @generated from field: string access_key_id = 1;\n */\n accessKeyId = \"\";\n\n /**\n * AWS secret access key.\n *\n * @generated from field: string secret_access_key = 2;\n */\n secretAccessKey = \"\";\n\n constructor(data?: PartialMessage<S3Credentials>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.S3Credentials\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"access_key_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"secret_access_key\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): S3Credentials {\n return new S3Credentials().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): S3Credentials {\n return new S3Credentials().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): S3Credentials {\n return new S3Credentials().fromJsonString(jsonString, options);\n }\n\n static equals(a: S3Credentials | PlainMessage<S3Credentials> | undefined, b: S3Credentials | PlainMessage<S3Credentials> | undefined): boolean {\n return proto3.util.equals(S3Credentials, a, b);\n }\n}\n\n/**\n * HTTP credentials using custom headers (e.g., Bearer token, API key).\n *\n * @generated from message transcodely.v1.HttpCredentials\n */\nexport class HttpCredentials extends Message<HttpCredentials> {\n /**\n * Custom headers to include in all requests.\n * Example: {\"Authorization\": \"Bearer sk-xxx\", \"X-API-Key\": \"key123\"}\n *\n * @generated from field: map<string, string> headers = 1;\n */\n headers: { [key: string]: string } = {};\n\n constructor(data?: PartialMessage<HttpCredentials>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.HttpCredentials\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"headers\", kind: \"map\", K: 9 /* ScalarType.STRING */, V: {kind: \"scalar\", T: 9 /* ScalarType.STRING */} },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): HttpCredentials {\n return new HttpCredentials().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): HttpCredentials {\n return new HttpCredentials().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): HttpCredentials {\n return new HttpCredentials().fromJsonString(jsonString, options);\n }\n\n static equals(a: HttpCredentials | PlainMessage<HttpCredentials> | undefined, b: HttpCredentials | PlainMessage<HttpCredentials> | undefined): boolean {\n return proto3.util.equals(HttpCredentials, a, b);\n }\n}\n\n/**\n * GCS origin configuration.\n *\n * @generated from message transcodely.v1.GcsOriginConfig\n */\nexport class GcsOriginConfig extends Message<GcsOriginConfig> {\n /**\n * GCS bucket name (e.g., \"my-video-bucket\").\n *\n * @generated from field: string bucket = 1;\n */\n bucket = \"\";\n\n /**\n * Credentials for authentication.\n *\n * @generated from field: transcodely.v1.GcsCredentials credentials = 2;\n */\n credentials?: GcsCredentials;\n\n constructor(data?: PartialMessage<GcsOriginConfig>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.GcsOriginConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"bucket\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"credentials\", kind: \"message\", T: GcsCredentials },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GcsOriginConfig {\n return new GcsOriginConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GcsOriginConfig {\n return new GcsOriginConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GcsOriginConfig {\n return new GcsOriginConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: GcsOriginConfig | PlainMessage<GcsOriginConfig> | undefined, b: GcsOriginConfig | PlainMessage<GcsOriginConfig> | undefined): boolean {\n return proto3.util.equals(GcsOriginConfig, a, b);\n }\n}\n\n/**\n * S3 origin configuration.\n * Works with AWS S3 and any S3-compatible service (Hetzner Object Storage,\n * Wasabi, DigitalOcean Spaces, Cloudflare R2, MinIO, etc.) via the optional\n * endpoint field.\n *\n * @generated from message transcodely.v1.S3OriginConfig\n */\nexport class S3OriginConfig extends Message<S3OriginConfig> {\n /**\n * S3 bucket name (e.g., \"my-video-bucket\").\n *\n * @generated from field: string bucket = 1;\n */\n bucket = \"\";\n\n /**\n * Region (e.g., \"us-east-1\", \"eu-west-1\", \"fsn1\").\n * Still required when using a custom endpoint — the AWS SDK needs it for request signing.\n *\n * @generated from field: string region = 2;\n */\n region = \"\";\n\n /**\n * Credentials for authentication.\n *\n * @generated from field: transcodely.v1.S3Credentials credentials = 3;\n */\n credentials?: S3Credentials;\n\n /**\n * Optional S3-compatible endpoint (e.g., \"https://fsn1.your-objectstorage.com\").\n * When set, the provider uses path-style addressing and this endpoint instead of\n * AWS's auto-discovery. Leave empty to use AWS S3.\n *\n * @generated from field: optional string endpoint = 4;\n */\n endpoint?: string;\n\n constructor(data?: PartialMessage<S3OriginConfig>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.S3OriginConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"bucket\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"region\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"credentials\", kind: \"message\", T: S3Credentials },\n { no: 4, name: \"endpoint\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): S3OriginConfig {\n return new S3OriginConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): S3OriginConfig {\n return new S3OriginConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): S3OriginConfig {\n return new S3OriginConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: S3OriginConfig | PlainMessage<S3OriginConfig> | undefined, b: S3OriginConfig | PlainMessage<S3OriginConfig> | undefined): boolean {\n return proto3.util.equals(S3OriginConfig, a, b);\n }\n}\n\n/**\n * HTTP origin configuration.\n *\n * @generated from message transcodely.v1.HttpOriginConfig\n */\nexport class HttpOriginConfig extends Message<HttpOriginConfig> {\n /**\n * Base URL for all requests (e.g., \"https://cdn.example.com/videos/\").\n * Must be HTTPS in production.\n *\n * @generated from field: string base_url = 1;\n */\n baseUrl = \"\";\n\n /**\n * Optional credentials (headers for authentication).\n *\n * @generated from field: transcodely.v1.HttpCredentials credentials = 2;\n */\n credentials?: HttpCredentials;\n\n constructor(data?: PartialMessage<HttpOriginConfig>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.HttpOriginConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"base_url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"credentials\", kind: \"message\", T: HttpCredentials },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): HttpOriginConfig {\n return new HttpOriginConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): HttpOriginConfig {\n return new HttpOriginConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): HttpOriginConfig {\n return new HttpOriginConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: HttpOriginConfig | PlainMessage<HttpOriginConfig> | undefined, b: HttpOriginConfig | PlainMessage<HttpOriginConfig> | undefined): boolean {\n return proto3.util.equals(HttpOriginConfig, a, b);\n }\n}\n\n/**\n * Cloudflare R2 origin configuration.\n * Users may supply either an ergonomic account_id (+ optional jurisdiction)\n * — the endpoint is then derived as <account_id>[.<jurisdiction>].r2.cloudflarestorage.com —\n * or an explicit endpoint URL for custom domains and future jurisdictions.\n * Exactly one of account_id or endpoint must be provided.\n *\n * @generated from message transcodely.v1.R2OriginConfig\n */\nexport class R2OriginConfig extends Message<R2OriginConfig> {\n /**\n * R2 bucket name.\n *\n * @generated from field: string bucket = 1;\n */\n bucket = \"\";\n\n /**\n * R2 API token credentials. The shape matches S3 since R2 issues S3-compatible\n * access keys; intentionally reused so the encryption/decryption path is shared.\n *\n * @generated from field: transcodely.v1.S3Credentials credentials = 2;\n */\n credentials?: S3Credentials;\n\n /**\n * Cloudflare account ID (32 lowercase hex characters).\n * When set, the endpoint is derived from account_id and jurisdiction.\n * Exactly one of account_id or endpoint must be set.\n *\n * @generated from field: string account_id = 3;\n */\n accountId = \"\";\n\n /**\n * Optional jurisdiction (data residency). Defaults to R2_JURISDICTION_DEFAULT\n * when account_id is set. Ignored when endpoint is supplied directly.\n *\n * @generated from field: transcodely.v1.R2Jurisdiction jurisdiction = 4;\n */\n jurisdiction = R2Jurisdiction.UNSPECIFIED;\n\n /**\n * Explicit endpoint URL (e.g., for custom domains bound to a bucket, or for\n * future jurisdictions not yet enumerated in R2Jurisdiction). Either set this\n * or account_id, never both.\n *\n * @generated from field: optional string endpoint = 5;\n */\n endpoint?: string;\n\n constructor(data?: PartialMessage<R2OriginConfig>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.R2OriginConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"bucket\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"credentials\", kind: \"message\", T: S3Credentials },\n { no: 3, name: \"account_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"jurisdiction\", kind: \"enum\", T: proto3.getEnumType(R2Jurisdiction) },\n { no: 5, name: \"endpoint\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): R2OriginConfig {\n return new R2OriginConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): R2OriginConfig {\n return new R2OriginConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): R2OriginConfig {\n return new R2OriginConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: R2OriginConfig | PlainMessage<R2OriginConfig> | undefined, b: R2OriginConfig | PlainMessage<R2OriginConfig> | undefined): boolean {\n return proto3.util.equals(R2OriginConfig, a, b);\n }\n}\n\n/**\n * A lightweight reference to an origin, included in job responses.\n * This provides enough context without exposing credentials.\n *\n * @generated from message transcodely.v1.OriginRef\n */\nexport class OriginRef extends Message<OriginRef> {\n /**\n * Origin ID.\n *\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n /**\n * Origin name.\n *\n * @generated from field: string name = 2;\n */\n name = \"\";\n\n /**\n * Storage provider type.\n *\n * @generated from field: transcodely.v1.OriginProvider provider = 3;\n */\n provider = OriginProvider.UNSPECIFIED;\n\n /**\n * Path to the object (for input) or path template used (for output).\n *\n * @generated from field: string path = 4;\n */\n path = \"\";\n\n /**\n * Bucket name (GCS/S3 origins only).\n * Not set for HTTP origins.\n *\n * @generated from field: optional string bucket = 5;\n */\n bucket?: string;\n\n /**\n * Base URL (HTTP origins only).\n * Not set for GCS/S3 origins.\n *\n * @generated from field: optional string base_url = 6;\n */\n baseUrl?: string;\n\n constructor(data?: PartialMessage<OriginRef>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.OriginRef\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"provider\", kind: \"enum\", T: proto3.getEnumType(OriginProvider) },\n { no: 4, name: \"path\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 5, name: \"bucket\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 6, name: \"base_url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): OriginRef {\n return new OriginRef().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): OriginRef {\n return new OriginRef().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): OriginRef {\n return new OriginRef().fromJsonString(jsonString, options);\n }\n\n static equals(a: OriginRef | PlainMessage<OriginRef> | undefined, b: OriginRef | PlainMessage<OriginRef> | undefined): boolean {\n return proto3.util.equals(OriginRef, a, b);\n }\n}\n\n/**\n * A storage origin for video inputs and outputs.\n *\n * @generated from message transcodely.v1.Origin\n */\nexport class Origin extends Message<Origin> {\n /**\n * Unique origin identifier (e.g., \"ori_a1b2c3d4e5f6\").\n *\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n /**\n * Human-readable name for the origin.\n *\n * @generated from field: string name = 2;\n */\n name = \"\";\n\n /**\n * Optional description of the origin's purpose.\n *\n * @generated from field: string description = 3;\n */\n description = \"\";\n\n /**\n * Storage provider type.\n *\n * @generated from field: transcodely.v1.OriginProvider provider = 4;\n */\n provider = OriginProvider.UNSPECIFIED;\n\n /**\n * Declared permissions (what the customer says the credentials can do).\n * We validate these at creation and at job time.\n *\n * @generated from field: repeated transcodely.v1.OriginPermission permissions = 5;\n */\n permissions: OriginPermission[] = [];\n\n /**\n * Current status.\n *\n * @generated from field: transcodely.v1.OriginStatus status = 6;\n */\n status = OriginStatus.UNSPECIFIED;\n\n /**\n * Optional base path within the bucket (e.g., \"videos/uploads/\").\n * Applied to all object paths.\n *\n * @generated from field: string base_path = 7;\n */\n basePath = \"\";\n\n /**\n * Optional path template for output objects.\n * Supports variables: {job_id}, {video_id}, {timestamp}, {date}, {uuid},\n * {output_index}, {preset_id}, {codec}, {resolution}, {bitrate},\n * {format}, {framerate},\n * {segment_index}, {segment_number}, {segment_time},\n * {thumb_index}, {thumb_time}, {thumb_time_ms}\n * Example: \"jobs/{job_id}/outputs/{output_index}_{codec}.mp4\"\n * Example ABR: \"{video_id}/{format}/{resolution}_{framerate}fps/stream\"\n * Must not start with `/` or contain `..` (no path traversal). Must\n * include at least one of {job_id}|{output_id}|{video_id}|{uuid} so\n * concurrent jobs sharing this origin cannot collide.\n *\n * @generated from field: string path_template = 8;\n */\n pathTemplate = \"\";\n\n /**\n * GCS-specific configuration (only set if provider is GCS).\n * Note: credentials are not included in responses for security.\n *\n * @generated from field: transcodely.v1.GcsOriginConfig gcs = 9;\n */\n gcs?: GcsOriginConfig;\n\n /**\n * S3-specific configuration (only set if provider is S3).\n * Note: credentials are not included in responses for security.\n *\n * @generated from field: transcodely.v1.S3OriginConfig s3 = 10;\n */\n s3?: S3OriginConfig;\n\n /**\n * HTTP-specific configuration (only set if provider is HTTP).\n * Note: credentials are not included in responses for security.\n *\n * @generated from field: transcodely.v1.HttpOriginConfig http = 11;\n */\n http?: HttpOriginConfig;\n\n /**\n * Last successful validation timestamp.\n *\n * @generated from field: optional google.protobuf.Timestamp last_validated_at = 12;\n */\n lastValidatedAt?: Timestamp;\n\n /**\n * Error from last failed validation (if status is FAILED).\n *\n * @generated from field: optional string validation_error = 13;\n */\n validationError?: string;\n\n /**\n * When the origin was created.\n *\n * @generated from field: google.protobuf.Timestamp created_at = 14;\n */\n createdAt?: Timestamp;\n\n /**\n * When the origin was last updated.\n *\n * @generated from field: google.protobuf.Timestamp updated_at = 15;\n */\n updatedAt?: Timestamp;\n\n /**\n * When the origin was archived (if status is ARCHIVED).\n *\n * @generated from field: optional google.protobuf.Timestamp archived_at = 16;\n */\n archivedAt?: Timestamp;\n\n /**\n * True if this is a Transcodely-managed origin (auto-created during hosting provisioning).\n * Managed origins cannot be modified or archived by users.\n *\n * @generated from field: bool is_managed = 17;\n */\n isManaged = false;\n\n /**\n * R2-specific configuration (only set if provider is R2).\n * Note: credentials are not included in responses for security.\n *\n * @generated from field: transcodely.v1.R2OriginConfig r2 = 18;\n */\n r2?: R2OriginConfig;\n\n constructor(data?: PartialMessage<Origin>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.Origin\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"description\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"provider\", kind: \"enum\", T: proto3.getEnumType(OriginProvider) },\n { no: 5, name: \"permissions\", kind: \"enum\", T: proto3.getEnumType(OriginPermission), repeated: true },\n { no: 6, name: \"status\", kind: \"enum\", T: proto3.getEnumType(OriginStatus) },\n { no: 7, name: \"base_path\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 8, name: \"path_template\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 9, name: \"gcs\", kind: \"message\", T: GcsOriginConfig },\n { no: 10, name: \"s3\", kind: \"message\", T: S3OriginConfig },\n { no: 11, name: \"http\", kind: \"message\", T: HttpOriginConfig },\n { no: 12, name: \"last_validated_at\", kind: \"message\", T: Timestamp, opt: true },\n { no: 13, name: \"validation_error\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 14, name: \"created_at\", kind: \"message\", T: Timestamp },\n { no: 15, name: \"updated_at\", kind: \"message\", T: Timestamp },\n { no: 16, name: \"archived_at\", kind: \"message\", T: Timestamp, opt: true },\n { no: 17, name: \"is_managed\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 18, name: \"r2\", kind: \"message\", T: R2OriginConfig },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): Origin {\n return new Origin().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): Origin {\n return new Origin().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): Origin {\n return new Origin().fromJsonString(jsonString, options);\n }\n\n static equals(a: Origin | PlainMessage<Origin> | undefined, b: Origin | PlainMessage<Origin> | undefined): boolean {\n return proto3.util.equals(Origin, a, b);\n }\n}\n\n/**\n * Request to create a new origin.\n *\n * @generated from message transcodely.v1.CreateOriginRequest\n */\nexport class CreateOriginRequest extends Message<CreateOriginRequest> {\n /**\n * Human-readable name for the origin.\n *\n * @generated from field: string name = 1;\n */\n name = \"\";\n\n /**\n * Optional description of the origin's purpose.\n *\n * @generated from field: string description = 2;\n */\n description = \"\";\n\n /**\n * Declared permissions (what the credentials should be able to do).\n * At least one permission is required.\n *\n * @generated from field: repeated transcodely.v1.OriginPermission permissions = 3;\n */\n permissions: OriginPermission[] = [];\n\n /**\n * Optional base path within the bucket.\n * Example: \"videos/uploads/\" - all paths will be prefixed with this.\n *\n * @generated from field: string base_path = 4;\n */\n basePath = \"\";\n\n /**\n * Optional path template for output objects.\n * See Origin.path_template for available variables.\n *\n * @generated from field: string path_template = 5;\n */\n pathTemplate = \"\";\n\n /**\n * GCS provider configuration.\n *\n * @generated from field: transcodely.v1.GcsOriginConfig gcs = 6;\n */\n gcs?: GcsOriginConfig;\n\n /**\n * S3 provider configuration.\n *\n * @generated from field: transcodely.v1.S3OriginConfig s3 = 7;\n */\n s3?: S3OriginConfig;\n\n /**\n * HTTP provider configuration (read-only).\n *\n * @generated from field: transcodely.v1.HttpOriginConfig http = 8;\n */\n http?: HttpOriginConfig;\n\n /**\n * R2 provider configuration (Cloudflare R2).\n *\n * @generated from field: transcodely.v1.R2OriginConfig r2 = 9;\n */\n r2?: R2OriginConfig;\n\n constructor(data?: PartialMessage<CreateOriginRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.CreateOriginRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"description\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"permissions\", kind: \"enum\", T: proto3.getEnumType(OriginPermission), repeated: true },\n { no: 4, name: \"base_path\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 5, name: \"path_template\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 6, name: \"gcs\", kind: \"message\", T: GcsOriginConfig },\n { no: 7, name: \"s3\", kind: \"message\", T: S3OriginConfig },\n { no: 8, name: \"http\", kind: \"message\", T: HttpOriginConfig },\n { no: 9, name: \"r2\", kind: \"message\", T: R2OriginConfig },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CreateOriginRequest {\n return new CreateOriginRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CreateOriginRequest {\n return new CreateOriginRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CreateOriginRequest {\n return new CreateOriginRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: CreateOriginRequest | PlainMessage<CreateOriginRequest> | undefined, b: CreateOriginRequest | PlainMessage<CreateOriginRequest> | undefined): boolean {\n return proto3.util.equals(CreateOriginRequest, a, b);\n }\n}\n\n/**\n * Response from creating an origin.\n *\n * @generated from message transcodely.v1.CreateOriginResponse\n */\nexport class CreateOriginResponse extends Message<CreateOriginResponse> {\n /**\n * The created origin.\n *\n * @generated from field: transcodely.v1.Origin origin = 1;\n */\n origin?: Origin;\n\n /**\n * Validation result from initial credential check.\n *\n * @generated from field: transcodely.v1.ValidationResult validation = 2;\n */\n validation?: ValidationResult;\n\n constructor(data?: PartialMessage<CreateOriginResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.CreateOriginResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"origin\", kind: \"message\", T: Origin },\n { no: 2, name: \"validation\", kind: \"message\", T: ValidationResult },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CreateOriginResponse {\n return new CreateOriginResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CreateOriginResponse {\n return new CreateOriginResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CreateOriginResponse {\n return new CreateOriginResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: CreateOriginResponse | PlainMessage<CreateOriginResponse> | undefined, b: CreateOriginResponse | PlainMessage<CreateOriginResponse> | undefined): boolean {\n return proto3.util.equals(CreateOriginResponse, a, b);\n }\n}\n\n/**\n * Validation result details.\n *\n * @generated from message transcodely.v1.ValidationResult\n */\nexport class ValidationResult extends Message<ValidationResult> {\n /**\n * True if all declared permissions were validated successfully.\n *\n * @generated from field: bool success = 1;\n */\n success = false;\n\n /**\n * True if read permission was validated.\n *\n * @generated from field: bool can_read = 2;\n */\n canRead = false;\n\n /**\n * True if write permission was validated.\n *\n * @generated from field: bool can_write = 3;\n */\n canWrite = false;\n\n /**\n * Error message for read validation failure.\n *\n * @generated from field: string read_error = 4;\n */\n readError = \"\";\n\n /**\n * Error message for write validation failure.\n *\n * @generated from field: string write_error = 5;\n */\n writeError = \"\";\n\n /**\n * When the validation was performed.\n *\n * @generated from field: google.protobuf.Timestamp validated_at = 6;\n */\n validatedAt?: Timestamp;\n\n constructor(data?: PartialMessage<ValidationResult>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.ValidationResult\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"success\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 2, name: \"can_read\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 3, name: \"can_write\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 4, name: \"read_error\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 5, name: \"write_error\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 6, name: \"validated_at\", kind: \"message\", T: Timestamp },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ValidationResult {\n return new ValidationResult().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ValidationResult {\n return new ValidationResult().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ValidationResult {\n return new ValidationResult().fromJsonString(jsonString, options);\n }\n\n static equals(a: ValidationResult | PlainMessage<ValidationResult> | undefined, b: ValidationResult | PlainMessage<ValidationResult> | undefined): boolean {\n return proto3.util.equals(ValidationResult, a, b);\n }\n}\n\n/**\n * Request to get an origin.\n *\n * @generated from message transcodely.v1.GetOriginRequest\n */\nexport class GetOriginRequest extends Message<GetOriginRequest> {\n /**\n * ID of the origin to retrieve.\n *\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n constructor(data?: PartialMessage<GetOriginRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.GetOriginRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetOriginRequest {\n return new GetOriginRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetOriginRequest {\n return new GetOriginRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetOriginRequest {\n return new GetOriginRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: GetOriginRequest | PlainMessage<GetOriginRequest> | undefined, b: GetOriginRequest | PlainMessage<GetOriginRequest> | undefined): boolean {\n return proto3.util.equals(GetOriginRequest, a, b);\n }\n}\n\n/**\n * Response from getting an origin.\n *\n * @generated from message transcodely.v1.GetOriginResponse\n */\nexport class GetOriginResponse extends Message<GetOriginResponse> {\n /**\n * The requested origin.\n *\n * @generated from field: transcodely.v1.Origin origin = 1;\n */\n origin?: Origin;\n\n constructor(data?: PartialMessage<GetOriginResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.GetOriginResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"origin\", kind: \"message\", T: Origin },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetOriginResponse {\n return new GetOriginResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetOriginResponse {\n return new GetOriginResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetOriginResponse {\n return new GetOriginResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: GetOriginResponse | PlainMessage<GetOriginResponse> | undefined, b: GetOriginResponse | PlainMessage<GetOriginResponse> | undefined): boolean {\n return proto3.util.equals(GetOriginResponse, a, b);\n }\n}\n\n/**\n * Request to list origins.\n *\n * @generated from message transcodely.v1.ListOriginsRequest\n */\nexport class ListOriginsRequest extends Message<ListOriginsRequest> {\n /**\n * Optional filter by provider type.\n *\n * @generated from field: optional transcodely.v1.OriginProvider provider = 1;\n */\n provider?: OriginProvider;\n\n /**\n * Optional filter by status.\n *\n * @generated from field: optional transcodely.v1.OriginStatus status = 2;\n */\n status?: OriginStatus;\n\n /**\n * Optional filter by permission.\n *\n * @generated from field: optional transcodely.v1.OriginPermission permission = 3;\n */\n permission?: OriginPermission;\n\n /**\n * If true, include archived origins.\n *\n * @generated from field: bool include_archived = 4;\n */\n includeArchived = false;\n\n /**\n * Pagination parameters.\n *\n * @generated from field: transcodely.v1.PaginationRequest pagination = 5;\n */\n pagination?: PaginationRequest;\n\n constructor(data?: PartialMessage<ListOriginsRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.ListOriginsRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"provider\", kind: \"enum\", T: proto3.getEnumType(OriginProvider), opt: true },\n { no: 2, name: \"status\", kind: \"enum\", T: proto3.getEnumType(OriginStatus), opt: true },\n { no: 3, name: \"permission\", kind: \"enum\", T: proto3.getEnumType(OriginPermission), opt: true },\n { no: 4, name: \"include_archived\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 5, name: \"pagination\", kind: \"message\", T: PaginationRequest },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListOriginsRequest {\n return new ListOriginsRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListOriginsRequest {\n return new ListOriginsRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListOriginsRequest {\n return new ListOriginsRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: ListOriginsRequest | PlainMessage<ListOriginsRequest> | undefined, b: ListOriginsRequest | PlainMessage<ListOriginsRequest> | undefined): boolean {\n return proto3.util.equals(ListOriginsRequest, a, b);\n }\n}\n\n/**\n * Response from listing origins.\n *\n * @generated from message transcodely.v1.ListOriginsResponse\n */\nexport class ListOriginsResponse extends Message<ListOriginsResponse> {\n /**\n * List of origins.\n *\n * @generated from field: repeated transcodely.v1.Origin origins = 1;\n */\n origins: Origin[] = [];\n\n /**\n * Pagination metadata.\n *\n * @generated from field: transcodely.v1.PaginationResponse pagination = 2;\n */\n pagination?: PaginationResponse;\n\n constructor(data?: PartialMessage<ListOriginsResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.ListOriginsResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"origins\", kind: \"message\", T: Origin, repeated: true },\n { no: 2, name: \"pagination\", kind: \"message\", T: PaginationResponse },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListOriginsResponse {\n return new ListOriginsResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListOriginsResponse {\n return new ListOriginsResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListOriginsResponse {\n return new ListOriginsResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: ListOriginsResponse | PlainMessage<ListOriginsResponse> | undefined, b: ListOriginsResponse | PlainMessage<ListOriginsResponse> | undefined): boolean {\n return proto3.util.equals(ListOriginsResponse, a, b);\n }\n}\n\n/**\n * Request to update an origin.\n *\n * @generated from message transcodely.v1.UpdateOriginRequest\n */\nexport class UpdateOriginRequest extends Message<UpdateOriginRequest> {\n /**\n * ID of the origin to update.\n *\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n /**\n * Updated name (if provided).\n *\n * @generated from field: optional string name = 2;\n */\n name?: string;\n\n /**\n * Updated description (if provided).\n *\n * @generated from field: optional string description = 3;\n */\n description?: string;\n\n /**\n * Updated base path (if provided).\n *\n * @generated from field: optional string base_path = 4;\n */\n basePath?: string;\n\n /**\n * Updated path template (if provided).\n *\n * @generated from field: optional string path_template = 5;\n */\n pathTemplate?: string;\n\n /**\n * Updated GCS credentials (if provider is GCS).\n * If provided, validation is automatically triggered.\n *\n * @generated from field: optional transcodely.v1.GcsCredentials gcs_credentials = 6;\n */\n gcsCredentials?: GcsCredentials;\n\n /**\n * Updated S3 credentials (if provider is S3).\n * If provided, validation is automatically triggered.\n *\n * @generated from field: optional transcodely.v1.S3Credentials s3_credentials = 7;\n */\n s3Credentials?: S3Credentials;\n\n /**\n * Updated HTTP credentials (if provider is HTTP).\n * If provided, validation is automatically triggered.\n *\n * @generated from field: optional transcodely.v1.HttpCredentials http_credentials = 8;\n */\n httpCredentials?: HttpCredentials;\n\n /**\n * Updated R2 credentials (if provider is R2). Same shape as S3Credentials —\n * R2 issues S3-compatible access keys.\n * If provided, validation is automatically triggered.\n *\n * @generated from field: optional transcodely.v1.S3Credentials r2_credentials = 9;\n */\n r2Credentials?: S3Credentials;\n\n constructor(data?: PartialMessage<UpdateOriginRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.UpdateOriginRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 3, name: \"description\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 4, name: \"base_path\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 5, name: \"path_template\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 6, name: \"gcs_credentials\", kind: \"message\", T: GcsCredentials, opt: true },\n { no: 7, name: \"s3_credentials\", kind: \"message\", T: S3Credentials, opt: true },\n { no: 8, name: \"http_credentials\", kind: \"message\", T: HttpCredentials, opt: true },\n { no: 9, name: \"r2_credentials\", kind: \"message\", T: S3Credentials, opt: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): UpdateOriginRequest {\n return new UpdateOriginRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): UpdateOriginRequest {\n return new UpdateOriginRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): UpdateOriginRequest {\n return new UpdateOriginRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: UpdateOriginRequest | PlainMessage<UpdateOriginRequest> | undefined, b: UpdateOriginRequest | PlainMessage<UpdateOriginRequest> | undefined): boolean {\n return proto3.util.equals(UpdateOriginRequest, a, b);\n }\n}\n\n/**\n * Response from updating an origin.\n *\n * @generated from message transcodely.v1.UpdateOriginResponse\n */\nexport class UpdateOriginResponse extends Message<UpdateOriginResponse> {\n /**\n * The updated origin.\n *\n * @generated from field: transcodely.v1.Origin origin = 1;\n */\n origin?: Origin;\n\n /**\n * Validation result if credentials were updated.\n *\n * @generated from field: optional transcodely.v1.ValidationResult validation = 2;\n */\n validation?: ValidationResult;\n\n constructor(data?: PartialMessage<UpdateOriginResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.UpdateOriginResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"origin\", kind: \"message\", T: Origin },\n { no: 2, name: \"validation\", kind: \"message\", T: ValidationResult, opt: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): UpdateOriginResponse {\n return new UpdateOriginResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): UpdateOriginResponse {\n return new UpdateOriginResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): UpdateOriginResponse {\n return new UpdateOriginResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: UpdateOriginResponse | PlainMessage<UpdateOriginResponse> | undefined, b: UpdateOriginResponse | PlainMessage<UpdateOriginResponse> | undefined): boolean {\n return proto3.util.equals(UpdateOriginResponse, a, b);\n }\n}\n\n/**\n * Request to validate an origin's credentials and permissions.\n *\n * @generated from message transcodely.v1.ValidateOriginRequest\n */\nexport class ValidateOriginRequest extends Message<ValidateOriginRequest> {\n /**\n * ID of the origin to validate.\n *\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n constructor(data?: PartialMessage<ValidateOriginRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.ValidateOriginRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ValidateOriginRequest {\n return new ValidateOriginRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ValidateOriginRequest {\n return new ValidateOriginRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ValidateOriginRequest {\n return new ValidateOriginRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: ValidateOriginRequest | PlainMessage<ValidateOriginRequest> | undefined, b: ValidateOriginRequest | PlainMessage<ValidateOriginRequest> | undefined): boolean {\n return proto3.util.equals(ValidateOriginRequest, a, b);\n }\n}\n\n/**\n * Response from validating an origin.\n *\n * @generated from message transcodely.v1.ValidateOriginResponse\n */\nexport class ValidateOriginResponse extends Message<ValidateOriginResponse> {\n /**\n * The origin after validation (status may have changed).\n *\n * @generated from field: transcodely.v1.Origin origin = 1;\n */\n origin?: Origin;\n\n /**\n * Validation result.\n *\n * @generated from field: transcodely.v1.ValidationResult validation = 2;\n */\n validation?: ValidationResult;\n\n constructor(data?: PartialMessage<ValidateOriginResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.ValidateOriginResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"origin\", kind: \"message\", T: Origin },\n { no: 2, name: \"validation\", kind: \"message\", T: ValidationResult },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ValidateOriginResponse {\n return new ValidateOriginResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ValidateOriginResponse {\n return new ValidateOriginResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ValidateOriginResponse {\n return new ValidateOriginResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: ValidateOriginResponse | PlainMessage<ValidateOriginResponse> | undefined, b: ValidateOriginResponse | PlainMessage<ValidateOriginResponse> | undefined): boolean {\n return proto3.util.equals(ValidateOriginResponse, a, b);\n }\n}\n\n/**\n * Request to archive an origin.\n *\n * @generated from message transcodely.v1.ArchiveOriginRequest\n */\nexport class ArchiveOriginRequest extends Message<ArchiveOriginRequest> {\n /**\n * ID of the origin to archive.\n *\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n constructor(data?: PartialMessage<ArchiveOriginRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.ArchiveOriginRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ArchiveOriginRequest {\n return new ArchiveOriginRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ArchiveOriginRequest {\n return new ArchiveOriginRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ArchiveOriginRequest {\n return new ArchiveOriginRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: ArchiveOriginRequest | PlainMessage<ArchiveOriginRequest> | undefined, b: ArchiveOriginRequest | PlainMessage<ArchiveOriginRequest> | undefined): boolean {\n return proto3.util.equals(ArchiveOriginRequest, a, b);\n }\n}\n\n/**\n * Response from archiving an origin.\n *\n * @generated from message transcodely.v1.ArchiveOriginResponse\n */\nexport class ArchiveOriginResponse extends Message<ArchiveOriginResponse> {\n /**\n * The archived origin.\n *\n * @generated from field: transcodely.v1.Origin origin = 1;\n */\n origin?: Origin;\n\n constructor(data?: PartialMessage<ArchiveOriginResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.ArchiveOriginResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"origin\", kind: \"message\", T: Origin },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ArchiveOriginResponse {\n return new ArchiveOriginResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ArchiveOriginResponse {\n return new ArchiveOriginResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ArchiveOriginResponse {\n return new ArchiveOriginResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: ArchiveOriginResponse | PlainMessage<ArchiveOriginResponse> | undefined, b: ArchiveOriginResponse | PlainMessage<ArchiveOriginResponse> | undefined): boolean {\n return proto3.util.equals(ArchiveOriginResponse, a, b);\n }\n}\n\n","// Media types for video/audio stream information and metadata.\n\n// @generated by protoc-gen-es v1.10.0 with parameter \"target=ts,import_extension=.js\"\n// @generated from file transcodely/v1/media.proto (package transcodely.v1, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from \"@bufbuild/protobuf\";\nimport { Message, proto3, protoInt64, Timestamp } from \"@bufbuild/protobuf\";\n\n/**\n * InputMetadata contains comprehensive information about an input media file.\n * Populated after probing with ffprobe.\n *\n * @generated from message transcodely.v1.InputMetadata\n */\nexport class InputMetadata extends Message<InputMetadata> {\n /**\n * Container format (mp4, mkv, webm, mov, etc.).\n *\n * @generated from field: string format = 1;\n */\n format = \"\";\n\n /**\n * Total duration in milliseconds.\n *\n * @generated from field: int64 duration_ms = 2;\n */\n durationMs = protoInt64.zero;\n\n /**\n * File size in bytes.\n *\n * @generated from field: int64 size_bytes = 3;\n */\n sizeBytes = protoInt64.zero;\n\n /**\n * Overall bitrate in bits/sec.\n *\n * @generated from field: int64 bit_rate = 4;\n */\n bitRate = protoInt64.zero;\n\n /**\n * Video stream metadata (first/primary video stream).\n *\n * @generated from field: transcodely.v1.VideoStreamInfo video = 5;\n */\n video?: VideoStreamInfo;\n\n /**\n * Audio stream metadata (first/primary audio stream).\n *\n * @generated from field: transcodely.v1.AudioStreamInfo audio = 6;\n */\n audio?: AudioStreamInfo;\n\n /**\n * When the input was analyzed.\n *\n * @generated from field: google.protobuf.Timestamp probed_at = 7;\n */\n probedAt?: Timestamp;\n\n constructor(data?: PartialMessage<InputMetadata>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.InputMetadata\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"format\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"duration_ms\", kind: \"scalar\", T: 3 /* ScalarType.INT64 */ },\n { no: 3, name: \"size_bytes\", kind: \"scalar\", T: 3 /* ScalarType.INT64 */ },\n { no: 4, name: \"bit_rate\", kind: \"scalar\", T: 3 /* ScalarType.INT64 */ },\n { no: 5, name: \"video\", kind: \"message\", T: VideoStreamInfo },\n { no: 6, name: \"audio\", kind: \"message\", T: AudioStreamInfo },\n { no: 7, name: \"probed_at\", kind: \"message\", T: Timestamp },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): InputMetadata {\n return new InputMetadata().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): InputMetadata {\n return new InputMetadata().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): InputMetadata {\n return new InputMetadata().fromJsonString(jsonString, options);\n }\n\n static equals(a: InputMetadata | PlainMessage<InputMetadata> | undefined, b: InputMetadata | PlainMessage<InputMetadata> | undefined): boolean {\n return proto3.util.equals(InputMetadata, a, b);\n }\n}\n\n/**\n * VideoStreamInfo contains metadata about a video stream.\n *\n * @generated from message transcodely.v1.VideoStreamInfo\n */\nexport class VideoStreamInfo extends Message<VideoStreamInfo> {\n /**\n * Codec name (h264, hevc, vp9, av1, prores, etc.).\n *\n * @generated from field: string codec = 1;\n */\n codec = \"\";\n\n /**\n * Frame width in pixels.\n *\n * @generated from field: int32 width = 2;\n */\n width = 0;\n\n /**\n * Frame height in pixels.\n *\n * @generated from field: int32 height = 3;\n */\n height = 0;\n\n /**\n * Frame rate (e.g., 23.976, 29.97, 30.0, 59.94, 60.0).\n *\n * @generated from field: double frame_rate = 4;\n */\n frameRate = 0;\n\n /**\n * Video bitrate in bits/sec.\n *\n * @generated from field: int64 bit_rate = 5;\n */\n bitRate = protoInt64.zero;\n\n /**\n * Pixel format (yuv420p, yuv422p10le, rgb24, etc.).\n *\n * @generated from field: string pixel_format = 6;\n */\n pixelFormat = \"\";\n\n /**\n * Color space (bt709, bt2020, smpte170m, etc.).\n *\n * @generated from field: optional string color_space = 7;\n */\n colorSpace?: string;\n\n /**\n * Color transfer function (bt709, smpte2084 for HDR10, arib-std-b67 for HLG).\n *\n * @generated from field: optional string color_transfer = 8;\n */\n colorTransfer?: string;\n\n /**\n * Duration in milliseconds.\n *\n * @generated from field: int64 duration_ms = 9;\n */\n durationMs = protoInt64.zero;\n\n /**\n * Color primaries (bt709, bt2020, etc.).\n *\n * @generated from field: optional string color_primaries = 10;\n */\n colorPrimaries?: string;\n\n /**\n * Chroma location (left, center, topleft, etc.).\n *\n * @generated from field: optional string chroma_location = 11;\n */\n chromaLocation?: string;\n\n /**\n * Bit depth (8, 10, 12).\n *\n * @generated from field: optional int32 bit_depth = 12;\n */\n bitDepth?: number;\n\n /**\n * Whether the video is interlaced.\n *\n * @generated from field: optional bool interlaced = 13;\n */\n interlaced?: boolean;\n\n /**\n * Total number of frames (if known).\n *\n * @generated from field: optional int64 frame_count = 14;\n */\n frameCount?: bigint;\n\n /**\n * Display aspect ratio as string (e.g., \"16:9\", \"2.35:1\").\n *\n * @generated from field: optional string display_aspect_ratio = 15;\n */\n displayAspectRatio?: string;\n\n /**\n * Sample aspect ratio as string (e.g., \"1:1\").\n *\n * @generated from field: optional string sample_aspect_ratio = 16;\n */\n sampleAspectRatio?: string;\n\n constructor(data?: PartialMessage<VideoStreamInfo>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.VideoStreamInfo\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"codec\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"width\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n { no: 3, name: \"height\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n { no: 4, name: \"frame_rate\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */ },\n { no: 5, name: \"bit_rate\", kind: \"scalar\", T: 3 /* ScalarType.INT64 */ },\n { no: 6, name: \"pixel_format\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 7, name: \"color_space\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 8, name: \"color_transfer\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 9, name: \"duration_ms\", kind: \"scalar\", T: 3 /* ScalarType.INT64 */ },\n { no: 10, name: \"color_primaries\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 11, name: \"chroma_location\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 12, name: \"bit_depth\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 13, name: \"interlaced\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true },\n { no: 14, name: \"frame_count\", kind: \"scalar\", T: 3 /* ScalarType.INT64 */, opt: true },\n { no: 15, name: \"display_aspect_ratio\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 16, name: \"sample_aspect_ratio\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): VideoStreamInfo {\n return new VideoStreamInfo().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): VideoStreamInfo {\n return new VideoStreamInfo().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): VideoStreamInfo {\n return new VideoStreamInfo().fromJsonString(jsonString, options);\n }\n\n static equals(a: VideoStreamInfo | PlainMessage<VideoStreamInfo> | undefined, b: VideoStreamInfo | PlainMessage<VideoStreamInfo> | undefined): boolean {\n return proto3.util.equals(VideoStreamInfo, a, b);\n }\n}\n\n/**\n * AudioStreamInfo contains metadata about an audio stream.\n *\n * @generated from message transcodely.v1.AudioStreamInfo\n */\nexport class AudioStreamInfo extends Message<AudioStreamInfo> {\n /**\n * Codec name (aac, opus, mp3, flac, ac3, eac3, etc.).\n *\n * @generated from field: string codec = 1;\n */\n codec = \"\";\n\n /**\n * Sample rate in Hz (44100, 48000, 96000, etc.).\n *\n * @generated from field: int32 sample_rate = 2;\n */\n sampleRate = 0;\n\n /**\n * Number of channels (1=mono, 2=stereo, 6=5.1, 8=7.1).\n *\n * @generated from field: int32 channels = 3;\n */\n channels = 0;\n\n /**\n * Channel layout description (stereo, 5.1, 7.1, mono, etc.).\n *\n * @generated from field: string channel_layout = 4;\n */\n channelLayout = \"\";\n\n /**\n * Audio bitrate in bits/sec.\n *\n * @generated from field: int64 bit_rate = 5;\n */\n bitRate = protoInt64.zero;\n\n /**\n * Duration in milliseconds.\n *\n * @generated from field: int64 duration_ms = 6;\n */\n durationMs = protoInt64.zero;\n\n /**\n * Bits per sample (16, 24, 32).\n *\n * @generated from field: optional int32 bits_per_sample = 7;\n */\n bitsPerSample?: number;\n\n /**\n * Language code (ISO 639-2, e.g., \"eng\", \"spa\", \"jpn\").\n *\n * @generated from field: optional string language = 8;\n */\n language?: string;\n\n /**\n * Whether this is the default audio track.\n *\n * @generated from field: optional bool is_default = 9;\n */\n isDefault?: boolean;\n\n constructor(data?: PartialMessage<AudioStreamInfo>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.AudioStreamInfo\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"codec\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"sample_rate\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n { no: 3, name: \"channels\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n { no: 4, name: \"channel_layout\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 5, name: \"bit_rate\", kind: \"scalar\", T: 3 /* ScalarType.INT64 */ },\n { no: 6, name: \"duration_ms\", kind: \"scalar\", T: 3 /* ScalarType.INT64 */ },\n { no: 7, name: \"bits_per_sample\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 8, name: \"language\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 9, name: \"is_default\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): AudioStreamInfo {\n return new AudioStreamInfo().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): AudioStreamInfo {\n return new AudioStreamInfo().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): AudioStreamInfo {\n return new AudioStreamInfo().fromJsonString(jsonString, options);\n }\n\n static equals(a: AudioStreamInfo | PlainMessage<AudioStreamInfo> | undefined, b: AudioStreamInfo | PlainMessage<AudioStreamInfo> | undefined): boolean {\n return proto3.util.equals(AudioStreamInfo, a, b);\n }\n}\n\n/**\n * SubtitleStreamInfo contains metadata about a subtitle stream.\n * For future use when we support subtitle handling.\n *\n * @generated from message transcodely.v1.SubtitleStreamInfo\n */\nexport class SubtitleStreamInfo extends Message<SubtitleStreamInfo> {\n /**\n * Codec name (srt, ass, webvtt, dvdsub, etc.).\n *\n * @generated from field: string codec = 1;\n */\n codec = \"\";\n\n /**\n * Language code (ISO 639-2).\n *\n * @generated from field: optional string language = 2;\n */\n language?: string;\n\n /**\n * Title/description of the subtitle track.\n *\n * @generated from field: optional string title = 3;\n */\n title?: string;\n\n /**\n * Whether this is the default subtitle track.\n *\n * @generated from field: optional bool is_default = 4;\n */\n isDefault?: boolean;\n\n /**\n * Whether this track is for hearing impaired.\n *\n * @generated from field: optional bool hearing_impaired = 5;\n */\n hearingImpaired?: boolean;\n\n /**\n * Whether this track contains forced subtitles.\n *\n * @generated from field: optional bool forced = 6;\n */\n forced?: boolean;\n\n constructor(data?: PartialMessage<SubtitleStreamInfo>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.SubtitleStreamInfo\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"codec\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"language\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 3, name: \"title\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 4, name: \"is_default\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true },\n { no: 5, name: \"hearing_impaired\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true },\n { no: 6, name: \"forced\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): SubtitleStreamInfo {\n return new SubtitleStreamInfo().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): SubtitleStreamInfo {\n return new SubtitleStreamInfo().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): SubtitleStreamInfo {\n return new SubtitleStreamInfo().fromJsonString(jsonString, options);\n }\n\n static equals(a: SubtitleStreamInfo | PlainMessage<SubtitleStreamInfo> | undefined, b: SubtitleStreamInfo | PlainMessage<SubtitleStreamInfo> | undefined): boolean {\n return proto3.util.equals(SubtitleStreamInfo, a, b);\n }\n}\n\n","// Thumbnail generation configuration.\n\n// @generated by protoc-gen-es v1.10.0 with parameter \"target=ts,import_extension=.js\"\n// @generated from file transcodely/v1/thumbnails.proto (package transcodely.v1, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from \"@bufbuild/protobuf\";\nimport { Message, proto3 } from \"@bufbuild/protobuf\";\n\n/**\n * Thumbnail generation mode.\n *\n * @generated from enum transcodely.v1.ThumbnailMode\n */\nexport enum ThumbnailMode {\n /**\n * @generated from enum value: THUMBNAIL_MODE_UNSPECIFIED = 0;\n */\n UNSPECIFIED = 0,\n\n /**\n * Extract a single frame at a specific timestamp.\n *\n * @generated from enum value: THUMBNAIL_MODE_SINGLE = 1;\n */\n SINGLE = 1,\n\n /**\n * Extract frames at regular intervals.\n *\n * @generated from enum value: THUMBNAIL_MODE_INTERVAL = 2;\n */\n INTERVAL = 2,\n\n /**\n * Combine frames into a CSS sprite sheet grid with WebVTT.\n *\n * @generated from enum value: THUMBNAIL_MODE_SPRITE = 3;\n */\n SPRITE = 3,\n\n /**\n * Extract frames at explicit timestamps.\n *\n * @generated from enum value: THUMBNAIL_MODE_TIMESTAMPS = 4;\n */\n TIMESTAMPS = 4,\n}\n// Retrieve enum metadata with: proto3.getEnumType(ThumbnailMode)\nproto3.util.setEnumType(ThumbnailMode, \"transcodely.v1.ThumbnailMode\", [\n { no: 0, name: \"THUMBNAIL_MODE_UNSPECIFIED\" },\n { no: 1, name: \"THUMBNAIL_MODE_SINGLE\" },\n { no: 2, name: \"THUMBNAIL_MODE_INTERVAL\" },\n { no: 3, name: \"THUMBNAIL_MODE_SPRITE\" },\n { no: 4, name: \"THUMBNAIL_MODE_TIMESTAMPS\" },\n]);\n\n/**\n * Thumbnail output format.\n *\n * @generated from enum transcodely.v1.ThumbnailFormat\n */\nexport enum ThumbnailFormat {\n /**\n * @generated from enum value: THUMBNAIL_FORMAT_UNSPECIFIED = 0;\n */\n UNSPECIFIED = 0,\n\n /**\n * @generated from enum value: THUMBNAIL_FORMAT_JPEG = 1;\n */\n JPEG = 1,\n\n /**\n * @generated from enum value: THUMBNAIL_FORMAT_PNG = 2;\n */\n PNG = 2,\n\n /**\n * @generated from enum value: THUMBNAIL_FORMAT_WEBP = 3;\n */\n WEBP = 3,\n}\n// Retrieve enum metadata with: proto3.getEnumType(ThumbnailFormat)\nproto3.util.setEnumType(ThumbnailFormat, \"transcodely.v1.ThumbnailFormat\", [\n { no: 0, name: \"THUMBNAIL_FORMAT_UNSPECIFIED\" },\n { no: 1, name: \"THUMBNAIL_FORMAT_JPEG\" },\n { no: 2, name: \"THUMBNAIL_FORMAT_PNG\" },\n { no: 3, name: \"THUMBNAIL_FORMAT_WEBP\" },\n]);\n\n/**\n * Thumbnail generation specification.\n * Configures how thumbnails are extracted from the input video.\n *\n * @generated from message transcodely.v1.ThumbnailSpec\n */\nexport class ThumbnailSpec extends Message<ThumbnailSpec> {\n /**\n * Generation mode (required).\n *\n * @generated from field: transcodely.v1.ThumbnailMode mode = 1;\n */\n mode = ThumbnailMode.UNSPECIFIED;\n\n /**\n * Output format. Default: jpeg.\n *\n * @generated from field: transcodely.v1.ThumbnailFormat format = 2;\n */\n format = ThumbnailFormat.UNSPECIFIED;\n\n /**\n * Output width in pixels. If only width is set, height is proportional.\n *\n * @generated from field: optional int32 width = 3;\n */\n width?: number;\n\n /**\n * Output height in pixels. If only height is set, width is proportional.\n *\n * @generated from field: optional int32 height = 4;\n */\n height?: number;\n\n /**\n * JPEG/WebP quality (1-100). Default: 80. Ignored for PNG.\n *\n * @generated from field: optional int32 quality = 5;\n */\n quality?: number;\n\n /**\n * Timestamp in seconds for single mode.\n *\n * @generated from field: optional double timestamp = 6;\n */\n timestamp?: number;\n\n /**\n * Interval in seconds between frames (interval and sprite modes).\n * Range: 0.5-300 seconds. Default: 10.\n *\n * @generated from field: optional double interval_seconds = 7;\n */\n intervalSeconds?: number;\n\n /**\n * Explicit timestamps in seconds (timestamps mode).\n *\n * @generated from field: repeated double timestamps = 8;\n */\n timestamps: number[] = [];\n\n /**\n * Number of columns in sprite sheet grid (sprite mode only).\n * Range: 1-20. Default: 10.\n *\n * @generated from field: optional int32 sprite_columns = 9;\n */\n spriteColumns?: number;\n\n constructor(data?: PartialMessage<ThumbnailSpec>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.ThumbnailSpec\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"mode\", kind: \"enum\", T: proto3.getEnumType(ThumbnailMode) },\n { no: 2, name: \"format\", kind: \"enum\", T: proto3.getEnumType(ThumbnailFormat) },\n { no: 3, name: \"width\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 4, name: \"height\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 5, name: \"quality\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 6, name: \"timestamp\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */, opt: true },\n { no: 7, name: \"interval_seconds\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */, opt: true },\n { no: 8, name: \"timestamps\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */, repeated: true },\n { no: 9, name: \"sprite_columns\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ThumbnailSpec {\n return new ThumbnailSpec().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ThumbnailSpec {\n return new ThumbnailSpec().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ThumbnailSpec {\n return new ThumbnailSpec().fromJsonString(jsonString, options);\n }\n\n static equals(a: ThumbnailSpec | PlainMessage<ThumbnailSpec> | undefined, b: ThumbnailSpec | PlainMessage<ThumbnailSpec> | undefined): boolean {\n return proto3.util.equals(ThumbnailSpec, a, b);\n }\n}\n\n","// Job service for video transcoding operations.\n\n// @generated by protoc-gen-es v1.10.0 with parameter \"target=ts,import_extension=.js\"\n// @generated from file transcodely/v1/job.proto (package transcodely.v1, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from \"@bufbuild/protobuf\";\nimport { Message, proto3, Timestamp } from \"@bufbuild/protobuf\";\nimport { OutputFormat, PaginationRequest, PaginationResponse, QualityTier, Resolution, VideoCodec } from \"./common_pb.js\";\nimport { H264Options } from \"./codec_h264_pb.js\";\nimport { H265Options } from \"./codec_h265_pb.js\";\nimport { VP9Options } from \"./codec_vp9_pb.js\";\nimport { AV1Options } from \"./codec_av1_pb.js\";\nimport { HDRConfig } from \"./hdr_pb.js\";\nimport { GOPAlignmentMode, HLSPlaylistType, HLSSegmentFormat } from \"./streaming_pb.js\";\nimport { SubtitleTrack } from \"./subtitles_pb.js\";\nimport { DRMConfig } from \"./drm_pb.js\";\nimport { ContentAwareConfig } from \"./content_aware_pb.js\";\nimport { OriginRef } from \"./origin_pb.js\";\nimport { InputMetadata } from \"./media_pb.js\";\nimport { ThumbnailSpec } from \"./thumbnails_pb.js\";\n\n/**\n * Job status enumeration.\n *\n * Stability rules:\n * * Tail-append new values only. Inserting a value in the middle silently\n * renumbers everything after it and breaks every previously-compiled\n * client. CI runs `buf breaking` to catch this.\n * * When renaming a value (e.g. CANCELLED → CANCELED), `reserved` the old\n * name so old generated code does not accidentally re-acquire the tag.\n *\n * @generated from enum transcodely.v1.JobStatus\n */\nexport enum JobStatus {\n /**\n * Default value, should not be used.\n *\n * @generated from enum value: JOB_STATUS_UNSPECIFIED = 0;\n */\n UNSPECIFIED = 0,\n\n /**\n * Job is queued and waiting to be processed.\n *\n * @generated from enum value: JOB_STATUS_PENDING = 1;\n */\n PENDING = 1,\n\n /**\n * Job is analyzing the input file (ffprobe).\n *\n * @generated from enum value: JOB_STATUS_PROBING = 2;\n */\n PROBING = 2,\n\n /**\n * Job is currently being transcoded.\n *\n * @generated from enum value: JOB_STATUS_PROCESSING = 3;\n */\n PROCESSING = 3,\n\n /**\n * All outputs completed successfully.\n *\n * @generated from enum value: JOB_STATUS_COMPLETED = 4;\n */\n COMPLETED = 4,\n\n /**\n * Job failed with an error.\n *\n * @generated from enum value: JOB_STATUS_FAILED = 5;\n */\n FAILED = 5,\n\n /**\n * Job was canceled by the user.\n *\n * @generated from enum value: JOB_STATUS_CANCELED = 6;\n */\n CANCELED = 6,\n\n /**\n * Some outputs completed, others failed.\n *\n * @generated from enum value: JOB_STATUS_PARTIAL = 7;\n */\n PARTIAL = 7,\n\n /**\n * Job is waiting for customer confirmation after probing (delayed start only).\n * Customer can review estimated cost before proceeding.\n *\n * @generated from enum value: JOB_STATUS_AWAITING_CONFIRMATION = 8;\n */\n AWAITING_CONFIRMATION = 8,\n}\n// Retrieve enum metadata with: proto3.getEnumType(JobStatus)\nproto3.util.setEnumType(JobStatus, \"transcodely.v1.JobStatus\", [\n { no: 0, name: \"JOB_STATUS_UNSPECIFIED\" },\n { no: 1, name: \"JOB_STATUS_PENDING\" },\n { no: 2, name: \"JOB_STATUS_PROBING\" },\n { no: 3, name: \"JOB_STATUS_PROCESSING\" },\n { no: 4, name: \"JOB_STATUS_COMPLETED\" },\n { no: 5, name: \"JOB_STATUS_FAILED\" },\n { no: 6, name: \"JOB_STATUS_CANCELED\" },\n { no: 7, name: \"JOB_STATUS_PARTIAL\" },\n { no: 8, name: \"JOB_STATUS_AWAITING_CONFIRMATION\" },\n]);\n\n/**\n * Output status enumeration. Tail-append only; see JobStatus comment above.\n *\n * @generated from enum transcodely.v1.OutputStatus\n */\nexport enum OutputStatus {\n /**\n * @generated from enum value: OUTPUT_STATUS_UNSPECIFIED = 0;\n */\n UNSPECIFIED = 0,\n\n /**\n * @generated from enum value: OUTPUT_STATUS_PENDING = 1;\n */\n PENDING = 1,\n\n /**\n * @generated from enum value: OUTPUT_STATUS_PROCESSING = 2;\n */\n PROCESSING = 2,\n\n /**\n * @generated from enum value: OUTPUT_STATUS_COMPLETED = 3;\n */\n COMPLETED = 3,\n\n /**\n * @generated from enum value: OUTPUT_STATUS_FAILED = 4;\n */\n FAILED = 4,\n\n /**\n * @generated from enum value: OUTPUT_STATUS_CANCELED = 5;\n */\n CANCELED = 5,\n}\n// Retrieve enum metadata with: proto3.getEnumType(OutputStatus)\nproto3.util.setEnumType(OutputStatus, \"transcodely.v1.OutputStatus\", [\n { no: 0, name: \"OUTPUT_STATUS_UNSPECIFIED\" },\n { no: 1, name: \"OUTPUT_STATUS_PENDING\" },\n { no: 2, name: \"OUTPUT_STATUS_PROCESSING\" },\n { no: 3, name: \"OUTPUT_STATUS_COMPLETED\" },\n { no: 4, name: \"OUTPUT_STATUS_FAILED\" },\n { no: 5, name: \"OUTPUT_STATUS_CANCELED\" },\n]);\n\n/**\n * Job priority.\n *\n * @generated from enum transcodely.v1.JobPriority\n */\nexport enum JobPriority {\n /**\n * @generated from enum value: JOB_PRIORITY_UNSPECIFIED = 0;\n */\n UNSPECIFIED = 0,\n\n /**\n * @generated from enum value: JOB_PRIORITY_ECONOMY = 1;\n */\n ECONOMY = 1,\n\n /**\n * @generated from enum value: JOB_PRIORITY_STANDARD = 2;\n */\n STANDARD = 2,\n\n /**\n * @generated from enum value: JOB_PRIORITY_PREMIUM = 3;\n */\n PREMIUM = 3,\n}\n// Retrieve enum metadata with: proto3.getEnumType(JobPriority)\nproto3.util.setEnumType(JobPriority, \"transcodely.v1.JobPriority\", [\n { no: 0, name: \"JOB_PRIORITY_UNSPECIFIED\" },\n { no: 1, name: \"JOB_PRIORITY_ECONOMY\" },\n { no: 2, name: \"JOB_PRIORITY_STANDARD\" },\n { no: 3, name: \"JOB_PRIORITY_PREMIUM\" },\n]);\n\n/**\n * Types of events that trigger watch updates.\n *\n * @generated from enum transcodely.v1.WatchEventType\n */\nexport enum WatchEventType {\n /**\n * Default value, should not be used.\n *\n * @generated from enum value: WATCH_EVENT_TYPE_UNSPECIFIED = 0;\n */\n UNSPECIFIED = 0,\n\n /**\n * Initial state on connect.\n *\n * @generated from enum value: WATCH_EVENT_TYPE_SNAPSHOT = 1;\n */\n SNAPSHOT = 1,\n\n /**\n * Progress changed.\n *\n * @generated from enum value: WATCH_EVENT_TYPE_PROGRESS = 2;\n */\n PROGRESS = 2,\n\n /**\n * Status transition.\n *\n * @generated from enum value: WATCH_EVENT_TYPE_STATUS_CHANGE = 3;\n */\n STATUS_CHANGE = 3,\n\n /**\n * Terminal state, stream will close.\n *\n * @generated from enum value: WATCH_EVENT_TYPE_COMPLETED = 4;\n */\n COMPLETED = 4,\n\n /**\n * Keepalive.\n *\n * @generated from enum value: WATCH_EVENT_TYPE_HEARTBEAT = 5;\n */\n HEARTBEAT = 5,\n}\n// Retrieve enum metadata with: proto3.getEnumType(WatchEventType)\nproto3.util.setEnumType(WatchEventType, \"transcodely.v1.WatchEventType\", [\n { no: 0, name: \"WATCH_EVENT_TYPE_UNSPECIFIED\" },\n { no: 1, name: \"WATCH_EVENT_TYPE_SNAPSHOT\" },\n { no: 2, name: \"WATCH_EVENT_TYPE_PROGRESS\" },\n { no: 3, name: \"WATCH_EVENT_TYPE_STATUS_CHANGE\" },\n { no: 4, name: \"WATCH_EVENT_TYPE_COMPLETED\" },\n { no: 5, name: \"WATCH_EVENT_TYPE_HEARTBEAT\" },\n]);\n\n/**\n * Audio track configuration for multi-audio outputs.\n * Used to specify multiple audio language tracks in HLS/DASH outputs.\n *\n * @generated from message transcodely.v1.AudioTrackConfig\n */\nexport class AudioTrackConfig extends Message<AudioTrackConfig> {\n /**\n * ISO 639-2 language code (e.g., \"eng\", \"spa\", \"jpn\", \"fra\").\n * Required for each audio track.\n *\n * @generated from field: string language = 1;\n */\n language = \"\";\n\n /**\n * Human-readable label for the audio track.\n * Displayed in player UI (e.g., \"English\", \"Spanish\", \"日本語\").\n * If not provided, defaults to the language code.\n *\n * @generated from field: optional string label = 2;\n */\n label?: string;\n\n /**\n * Source audio track index from the input file (0-based).\n * Use when the input has multiple audio tracks and you want to select specific ones.\n * If not provided, uses track 0 for the first audio_track, track 1 for the second, etc.\n *\n * @generated from field: optional int32 source_track = 3;\n */\n sourceTrack?: number;\n\n /**\n * Whether this is the default audio track.\n * Only one track should be marked as default per output.\n * If no track is marked default, the first track becomes default.\n *\n * @generated from field: optional bool is_default = 4;\n */\n isDefault?: boolean;\n\n constructor(data?: PartialMessage<AudioTrackConfig>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.AudioTrackConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"language\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"label\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 3, name: \"source_track\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 4, name: \"is_default\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): AudioTrackConfig {\n return new AudioTrackConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): AudioTrackConfig {\n return new AudioTrackConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): AudioTrackConfig {\n return new AudioTrackConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: AudioTrackConfig | PlainMessage<AudioTrackConfig> | undefined, b: AudioTrackConfig | PlainMessage<AudioTrackConfig> | undefined): boolean {\n return proto3.util.equals(AudioTrackConfig, a, b);\n }\n}\n\n/**\n * VideoVariant represents a single video encode configuration.\n * Multiple variants can be combined in a single output for ABR ladders.\n *\n * @generated from message transcodely.v1.VideoVariant\n */\nexport class VideoVariant extends Message<VideoVariant> {\n /**\n * Video codec (required).\n *\n * @generated from field: transcodely.v1.VideoCodec codec = 1;\n */\n codec = VideoCodec.UNSPECIFIED;\n\n /**\n * Target resolution preset.\n * Use this OR (width + height) for custom dimensions.\n *\n * @generated from field: transcodely.v1.Resolution resolution = 2;\n */\n resolution = Resolution.RESOLUTION_UNSPECIFIED;\n\n /**\n * Quality tier (affects encoding speed and price).\n * Maps to encoder presets internally.\n *\n * @generated from field: transcodely.v1.QualityTier quality = 3;\n */\n quality = QualityTier.UNSPECIFIED;\n\n /**\n * Target frame rate. 0 = keep original.\n *\n * @generated from field: optional int32 framerate = 4;\n */\n framerate?: number;\n\n /**\n * Custom output width in pixels (use with height).\n *\n * @generated from field: optional int32 width = 5;\n */\n width?: number;\n\n /**\n * Custom output height in pixels (use with width).\n *\n * @generated from field: optional int32 height = 6;\n */\n height?: number;\n\n /**\n * Target bitrate in kbps (overrides CRF-based quality).\n *\n * @generated from field: optional int32 bitrate = 7;\n */\n bitrate?: number;\n\n /**\n * H.264 codec options (simplified - only profile and crf).\n *\n * @generated from field: optional transcodely.v1.H264Options h264 = 10;\n */\n h264?: H264Options;\n\n /**\n * H.265 codec options (simplified - only profile and crf).\n *\n * @generated from field: optional transcodely.v1.H265Options h265 = 11;\n */\n h265?: H265Options;\n\n /**\n * VP9 codec options (simplified - only profile and crf).\n *\n * @generated from field: optional transcodely.v1.VP9Options vp9 = 12;\n */\n vp9?: VP9Options;\n\n /**\n * AV1 codec options (simplified - crf and film_grain).\n *\n * @generated from field: optional transcodely.v1.AV1Options av1 = 13;\n */\n av1?: AV1Options;\n\n /**\n * HDR configuration for this variant.\n *\n * @generated from field: optional transcodely.v1.HDRConfig hdr = 14;\n */\n hdr?: HDRConfig;\n\n constructor(data?: PartialMessage<VideoVariant>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.VideoVariant\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"codec\", kind: \"enum\", T: proto3.getEnumType(VideoCodec) },\n { no: 2, name: \"resolution\", kind: \"enum\", T: proto3.getEnumType(Resolution) },\n { no: 3, name: \"quality\", kind: \"enum\", T: proto3.getEnumType(QualityTier) },\n { no: 4, name: \"framerate\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 5, name: \"width\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 6, name: \"height\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 7, name: \"bitrate\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 10, name: \"h264\", kind: \"message\", T: H264Options, opt: true },\n { no: 11, name: \"h265\", kind: \"message\", T: H265Options, opt: true },\n { no: 12, name: \"vp9\", kind: \"message\", T: VP9Options, opt: true },\n { no: 13, name: \"av1\", kind: \"message\", T: AV1Options, opt: true },\n { no: 14, name: \"hdr\", kind: \"message\", T: HDRConfig, opt: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): VideoVariant {\n return new VideoVariant().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): VideoVariant {\n return new VideoVariant().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): VideoVariant {\n return new VideoVariant().fromJsonString(jsonString, options);\n }\n\n static equals(a: VideoVariant | PlainMessage<VideoVariant> | undefined, b: VideoVariant | PlainMessage<VideoVariant> | undefined): boolean {\n return proto3.util.equals(VideoVariant, a, b);\n }\n}\n\n/**\n * HLSConfig contains HLS-specific packaging options.\n *\n * @generated from message transcodely.v1.HLSConfig\n */\nexport class HLSConfig extends Message<HLSConfig> {\n /**\n * Master playlist name (without extension).\n * Default: \"master\" produces \"master.m3u8\"\n *\n * @generated from field: optional string manifest = 1;\n */\n manifest?: string;\n\n /**\n * Segment format: \"fmp4\" (CMAF, default) or \"ts\" (legacy).\n * Note: TS only supports H.264.\n *\n * @generated from field: transcodely.v1.HLSSegmentFormat segment_format = 2;\n */\n segmentFormat = HLSSegmentFormat.HLS_SEGMENT_FORMAT_UNSPECIFIED;\n\n /**\n * Playlist type: VOD (default) or EVENT.\n *\n * @generated from field: transcodely.v1.HLSPlaylistType playlist_type = 3;\n */\n playlistType = HLSPlaylistType.HLS_PLAYLIST_TYPE_UNSPECIFIED;\n\n /**\n * Pattern for variant playlist names.\n * Variables: {codec}, {resolution}, {bitrate}, {index}\n * Default: \"{codec}_{resolution}\"\n *\n * @generated from field: optional string variant_pattern = 4;\n */\n variantPattern?: string;\n\n constructor(data?: PartialMessage<HLSConfig>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.HLSConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"manifest\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 2, name: \"segment_format\", kind: \"enum\", T: proto3.getEnumType(HLSSegmentFormat) },\n { no: 3, name: \"playlist_type\", kind: \"enum\", T: proto3.getEnumType(HLSPlaylistType) },\n { no: 4, name: \"variant_pattern\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): HLSConfig {\n return new HLSConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): HLSConfig {\n return new HLSConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): HLSConfig {\n return new HLSConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: HLSConfig | PlainMessage<HLSConfig> | undefined, b: HLSConfig | PlainMessage<HLSConfig> | undefined): boolean {\n return proto3.util.equals(HLSConfig, a, b);\n }\n}\n\n/**\n * DASHConfig contains DASH-specific packaging options.\n *\n * @generated from message transcodely.v1.DASHConfig\n */\nexport class DASHConfig extends Message<DASHConfig> {\n /**\n * Manifest name (without extension).\n * Default: \"manifest\" produces \"manifest.mpd\"\n *\n * @generated from field: optional string manifest = 1;\n */\n manifest?: string;\n\n constructor(data?: PartialMessage<DASHConfig>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.DASHConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"manifest\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): DASHConfig {\n return new DASHConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): DASHConfig {\n return new DASHConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): DASHConfig {\n return new DASHConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: DASHConfig | PlainMessage<DASHConfig> | undefined, b: DASHConfig | PlainMessage<DASHConfig> | undefined): boolean {\n return proto3.util.equals(DASHConfig, a, b);\n }\n}\n\n/**\n * SegmentConfig contains shared segmentation options for streaming outputs.\n *\n * @generated from message transcodely.v1.SegmentConfig\n */\nexport class SegmentConfig extends Message<SegmentConfig> {\n /**\n * Segment duration in seconds.\n * Range: 1-30, Default: 6 (Apple recommended)\n *\n * @generated from field: optional int32 duration = 1;\n */\n duration?: number;\n\n /**\n * GOP alignment mode.\n * Default: ALIGNED (GOP matches segment duration)\n *\n * @generated from field: transcodely.v1.GOPAlignmentMode gop_alignment = 2;\n */\n gopAlignment = GOPAlignmentMode.GOP_ALIGNMENT_MODE_UNSPECIFIED;\n\n /**\n * Fixed GOP size in seconds (only when gop_alignment = FIXED).\n * Range: 1-10 seconds\n *\n * @generated from field: optional int32 gop_size = 3;\n */\n gopSize?: number;\n\n constructor(data?: PartialMessage<SegmentConfig>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.SegmentConfig\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"duration\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 2, name: \"gop_alignment\", kind: \"enum\", T: proto3.getEnumType(GOPAlignmentMode) },\n { no: 3, name: \"gop_size\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): SegmentConfig {\n return new SegmentConfig().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): SegmentConfig {\n return new SegmentConfig().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): SegmentConfig {\n return new SegmentConfig().fromJsonString(jsonString, options);\n }\n\n static equals(a: SegmentConfig | PlainMessage<SegmentConfig> | undefined, b: SegmentConfig | PlainMessage<SegmentConfig> | undefined): boolean {\n return proto3.util.equals(SegmentConfig, a, b);\n }\n}\n\n/**\n * Output specification for a single rendition.\n * Use type + video[] array for all outputs. Preset reference is optional.\n *\n * @generated from message transcodely.v1.OutputSpec\n */\nexport class OutputSpec extends Message<OutputSpec> {\n /**\n * Output type (required unless using preset).\n * Values: mp4, webm, mkv, mov, hls, dash, adaptive\n *\n * @generated from field: transcodely.v1.OutputFormat type = 1;\n */\n type = OutputFormat.UNSPECIFIED;\n\n /**\n * Video variants for ABR (Adaptive Bitrate) encoding.\n * Each variant is encoded separately and packaged into the output.\n * For single-variant outputs, use an array with one element.\n * Maximum 20 variants per output.\n *\n * @generated from field: repeated transcodely.v1.VideoVariant video = 2;\n */\n video: VideoVariant[] = [];\n\n /**\n * Audio track configurations for multi-audio outputs.\n * Only used when type is HLS, DASH, or ADAPTIVE.\n * Each track specifies a language and optionally a label and source track.\n * Maximum 8 audio tracks per output.\n *\n * @generated from field: repeated transcodely.v1.AudioTrackConfig audio = 3;\n */\n audio: AudioTrackConfig[] = [];\n\n /**\n * HLS-specific configuration.\n * Only used when type is HLS or ADAPTIVE.\n *\n * @generated from field: optional transcodely.v1.HLSConfig hls = 4;\n */\n hls?: HLSConfig;\n\n /**\n * DASH-specific configuration.\n * Only used when type is DASH or ADAPTIVE.\n *\n * @generated from field: optional transcodely.v1.DASHConfig dash = 5;\n */\n dash?: DASHConfig;\n\n /**\n * Segment configuration for streaming outputs.\n * Shared between HLS and DASH. Only used for streaming types.\n *\n * @generated from field: optional transcodely.v1.SegmentConfig segments = 6;\n */\n segments?: SegmentConfig;\n\n /**\n * Custom path template for this output. When set together with the job-level\n * output_path_template, the two compose ADDITIVELY: the effective template is\n * \"<output_path_template>/<path_template>\". When the job-level template is\n * unset, this template is used on its own.\n *\n * Variables: {job_id}, {output_id}, {date}, {type}, {codec}, {resolution}, {quality}\n *\n * Example (additive): output_path_template = \"videos/{job_id}\" and\n * path_template = \"{codec}-{resolution}\" → \"videos/job_abc/h264-1080p.mp4\".\n *\n * Example (standalone): \"videos/{date}/{job_id}/{resolution}\" produces\n * \"videos/2024-01-15/job_abc123/1080p/master.m3u8\"\n *\n * For HLS/DASH outputs, the streaming manifest name is appended automatically.\n * Default when both this and output_path_template are unset: the origin's\n * path_template, or \"{job_id}/{output_id}\".\n * Must not start with `/` or contain `..` (no path traversal).\n *\n * @generated from field: optional string path_template = 7;\n */\n pathTemplate?: string;\n\n /**\n * Preset reference (optional).\n * Accepts either preset ID (e.g., \"pst_abc123\") or slug (e.g., \"gaming_1080p_60_standard\").\n * When provided, the preset's settings are used as the base configuration.\n *\n * @generated from field: optional string preset = 10;\n */\n preset?: string;\n\n /**\n * Subtitle track configurations for this output.\n * Maximum 8 subtitle tracks per output.\n *\n * @generated from field: repeated transcodely.v1.SubtitleTrack subtitle_tracks = 11;\n */\n subtitleTracks: SubtitleTrack[] = [];\n\n /**\n * DRM (content protection) configuration.\n * Only valid for HLS, DASH, or ADAPTIVE streaming types.\n *\n * @generated from field: optional transcodely.v1.DRMConfig drm = 12;\n */\n drm?: DRMConfig;\n\n /**\n * Content-aware encoding configuration.\n * Enables per-title encoding or automatic ABR ladder generation.\n *\n * @generated from field: optional transcodely.v1.ContentAwareConfig content_aware = 13;\n */\n contentAware?: ContentAwareConfig;\n\n /**\n * Encoding mode: \"fixed\" (default, static CRF) or \"auto\" (input-aware constrained CRF).\n * In \"auto\" mode, the worker caps each variant's bitrate based on the input's bitrate\n * and resolution ratio, preventing output from exceeding the input's quality ceiling.\n *\n * @generated from field: optional string encoding_mode = 14;\n */\n encodingMode?: string;\n\n /**\n * Resolved path template after composing job-level + per-output (additive),\n * falling back through origin → default as needed, and applying any\n * collision auto-fix. Read-only on responses; ignored on requests. Lets\n * clients see exactly which template the worker will render against. Empty\n * until the server processes the job.\n *\n * @generated from field: optional string effective_path_template = 15;\n */\n effectivePathTemplate?: string;\n\n constructor(data?: PartialMessage<OutputSpec>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.OutputSpec\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"type\", kind: \"enum\", T: proto3.getEnumType(OutputFormat) },\n { no: 2, name: \"video\", kind: \"message\", T: VideoVariant, repeated: true },\n { no: 3, name: \"audio\", kind: \"message\", T: AudioTrackConfig, repeated: true },\n { no: 4, name: \"hls\", kind: \"message\", T: HLSConfig, opt: true },\n { no: 5, name: \"dash\", kind: \"message\", T: DASHConfig, opt: true },\n { no: 6, name: \"segments\", kind: \"message\", T: SegmentConfig, opt: true },\n { no: 7, name: \"path_template\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 10, name: \"preset\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 11, name: \"subtitle_tracks\", kind: \"message\", T: SubtitleTrack, repeated: true },\n { no: 12, name: \"drm\", kind: \"message\", T: DRMConfig, opt: true },\n { no: 13, name: \"content_aware\", kind: \"message\", T: ContentAwareConfig, opt: true },\n { no: 14, name: \"encoding_mode\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 15, name: \"effective_path_template\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): OutputSpec {\n return new OutputSpec().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): OutputSpec {\n return new OutputSpec().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): OutputSpec {\n return new OutputSpec().fromJsonString(jsonString, options);\n }\n\n static equals(a: OutputSpec | PlainMessage<OutputSpec> | undefined, b: OutputSpec | PlainMessage<OutputSpec> | undefined): boolean {\n return proto3.util.equals(OutputSpec, a, b);\n }\n}\n\n/**\n * Locked pricing snapshot for an output (captured at job creation).\n * These values are used to calculate costs and won't change even if pricing rules are updated.\n *\n * @generated from message transcodely.v1.PricingSnapshot\n */\nexport class PricingSnapshot extends Message<PricingSnapshot> {\n /**\n * Base price per minute for the selected codec.\n *\n * @generated from field: double base_price = 1;\n */\n basePrice = 0;\n\n /**\n * Multiplier applied for the selected codec.\n *\n * @generated from field: double codec_multiplier = 2;\n */\n codecMultiplier = 0;\n\n /**\n * Multiplier applied for the selected resolution.\n *\n * @generated from field: double resolution_multiplier = 3;\n */\n resolutionMultiplier = 0;\n\n /**\n * Multiplier applied for the selected framerate.\n * Linear scaling: framerate / 30 (e.g., 60fps = 2.0x).\n *\n * @generated from field: double framerate_multiplier = 4;\n */\n framerateMultiplier = 0;\n\n /**\n * Multiplier applied for the selected quality tier.\n *\n * @generated from field: double quality_multiplier = 5;\n */\n qualityMultiplier = 0;\n\n /**\n * The resolution tier used for pricing (for transparency).\n * This shows which tier was applied when custom dimensions are used.\n *\n * @generated from field: transcodely.v1.Resolution resolution_tier = 6;\n */\n resolutionTier = Resolution.RESOLUTION_UNSPECIFIED;\n\n /**\n * The actual framerate used for pricing calculation.\n * For linear pricing: multiplier = actual_framerate / 30.\n *\n * @generated from field: double actual_framerate = 7;\n */\n actualFramerate = 0;\n\n /**\n * Total pixel count when custom dimensions are used (width * height).\n * Zero if using preset resolution.\n *\n * @generated from field: optional int64 pixel_count = 8;\n */\n pixelCount?: bigint;\n\n /**\n * Cumulative multiplier for premium features (DRM, HDR tone mapping, etc.).\n * 1.0 when no premium features are active.\n *\n * @generated from field: double feature_multiplier = 9;\n */\n featureMultiplier = 0;\n\n constructor(data?: PartialMessage<PricingSnapshot>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.PricingSnapshot\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"base_price\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */ },\n { no: 2, name: \"codec_multiplier\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */ },\n { no: 3, name: \"resolution_multiplier\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */ },\n { no: 4, name: \"framerate_multiplier\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */ },\n { no: 5, name: \"quality_multiplier\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */ },\n { no: 6, name: \"resolution_tier\", kind: \"enum\", T: proto3.getEnumType(Resolution) },\n { no: 7, name: \"actual_framerate\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */ },\n { no: 8, name: \"pixel_count\", kind: \"scalar\", T: 3 /* ScalarType.INT64 */, opt: true },\n { no: 9, name: \"feature_multiplier\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): PricingSnapshot {\n return new PricingSnapshot().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): PricingSnapshot {\n return new PricingSnapshot().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): PricingSnapshot {\n return new PricingSnapshot().fromJsonString(jsonString, options);\n }\n\n static equals(a: PricingSnapshot | PlainMessage<PricingSnapshot> | undefined, b: PricingSnapshot | PlainMessage<PricingSnapshot> | undefined): boolean {\n return proto3.util.equals(PricingSnapshot, a, b);\n }\n}\n\n/**\n * Per-variant pricing snapshot for multi-variant outputs (ABR ladders).\n * Each variant in an HLS/DASH output has its own pricing based on codec, resolution, etc.\n *\n * @generated from message transcodely.v1.VariantPricingSnapshot\n */\nexport class VariantPricingSnapshot extends Message<VariantPricingSnapshot> {\n /**\n * Variant index within the output (0-based).\n *\n * @generated from field: int32 index = 1;\n */\n index = 0;\n\n /**\n * Video codec for this variant.\n *\n * @generated from field: transcodely.v1.VideoCodec codec = 2;\n */\n codec = VideoCodec.UNSPECIFIED;\n\n /**\n * Target resolution for this variant.\n *\n * @generated from field: transcodely.v1.Resolution resolution = 3;\n */\n resolution = Resolution.RESOLUTION_UNSPECIFIED;\n\n /**\n * Target framerate for this variant (0 = keep original).\n *\n * @generated from field: int32 framerate = 4;\n */\n framerate = 0;\n\n /**\n * Quality tier for this variant.\n *\n * @generated from field: transcodely.v1.QualityTier quality = 5;\n */\n quality = QualityTier.UNSPECIFIED;\n\n /**\n * Custom width in pixels (if using custom dimensions).\n *\n * @generated from field: optional int32 width = 6;\n */\n width?: number;\n\n /**\n * Custom height in pixels (if using custom dimensions).\n *\n * @generated from field: optional int32 height = 7;\n */\n height?: number;\n\n /**\n * Base price per minute for this variant's codec.\n *\n * @generated from field: double base_price = 10;\n */\n basePrice = 0;\n\n /**\n * Multiplier applied for this variant's codec.\n *\n * @generated from field: double codec_multiplier = 11;\n */\n codecMultiplier = 0;\n\n /**\n * Multiplier applied for this variant's resolution.\n *\n * @generated from field: double resolution_multiplier = 12;\n */\n resolutionMultiplier = 0;\n\n /**\n * Multiplier applied for this variant's framerate.\n *\n * @generated from field: double framerate_multiplier = 13;\n */\n framerateMultiplier = 0;\n\n /**\n * Multiplier applied for this variant's quality tier.\n *\n * @generated from field: double quality_multiplier = 14;\n */\n qualityMultiplier = 0;\n\n /**\n * Resolution tier used for pricing (shows which tier was applied).\n *\n * @generated from field: transcodely.v1.Resolution resolution_tier = 15;\n */\n resolutionTier = Resolution.RESOLUTION_UNSPECIFIED;\n\n /**\n * Actual framerate used for pricing calculation.\n *\n * @generated from field: double actual_framerate = 16;\n */\n actualFramerate = 0;\n\n /**\n * Total pixel count when custom dimensions are used.\n *\n * @generated from field: optional int64 pixel_count = 17;\n */\n pixelCount?: bigint;\n\n /**\n * Per-variant costs (calculated from duration × multipliers)\n * Estimated cost calculated at probe completion.\n *\n * @generated from field: optional double estimated_cost = 18;\n */\n estimatedCost?: number;\n\n /**\n * Actual cost calculated at output completion.\n *\n * @generated from field: optional double actual_cost = 19;\n */\n actualCost?: number;\n\n /**\n * Variant encoding status: \"pending\", \"processing\", \"completed\", \"failed\".\n *\n * @generated from field: string status = 20;\n */\n status = \"\";\n\n /**\n * Variant encoding progress (0-100).\n *\n * @generated from field: int32 progress = 21;\n */\n progress = 0;\n\n /**\n * Cumulative multiplier for premium features.\n *\n * @generated from field: double feature_multiplier = 22;\n */\n featureMultiplier = 0;\n\n constructor(data?: PartialMessage<VariantPricingSnapshot>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.VariantPricingSnapshot\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"index\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n { no: 2, name: \"codec\", kind: \"enum\", T: proto3.getEnumType(VideoCodec) },\n { no: 3, name: \"resolution\", kind: \"enum\", T: proto3.getEnumType(Resolution) },\n { no: 4, name: \"framerate\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n { no: 5, name: \"quality\", kind: \"enum\", T: proto3.getEnumType(QualityTier) },\n { no: 6, name: \"width\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 7, name: \"height\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 10, name: \"base_price\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */ },\n { no: 11, name: \"codec_multiplier\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */ },\n { no: 12, name: \"resolution_multiplier\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */ },\n { no: 13, name: \"framerate_multiplier\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */ },\n { no: 14, name: \"quality_multiplier\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */ },\n { no: 15, name: \"resolution_tier\", kind: \"enum\", T: proto3.getEnumType(Resolution) },\n { no: 16, name: \"actual_framerate\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */ },\n { no: 17, name: \"pixel_count\", kind: \"scalar\", T: 3 /* ScalarType.INT64 */, opt: true },\n { no: 18, name: \"estimated_cost\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */, opt: true },\n { no: 19, name: \"actual_cost\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */, opt: true },\n { no: 20, name: \"status\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 21, name: \"progress\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n { no: 22, name: \"feature_multiplier\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): VariantPricingSnapshot {\n return new VariantPricingSnapshot().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): VariantPricingSnapshot {\n return new VariantPricingSnapshot().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): VariantPricingSnapshot {\n return new VariantPricingSnapshot().fromJsonString(jsonString, options);\n }\n\n static equals(a: VariantPricingSnapshot | PlainMessage<VariantPricingSnapshot> | undefined, b: VariantPricingSnapshot | PlainMessage<VariantPricingSnapshot> | undefined): boolean {\n return proto3.util.equals(VariantPricingSnapshot, a, b);\n }\n}\n\n/**\n * A job output rendition.\n *\n * @generated from message transcodely.v1.JobOutput\n */\nexport class JobOutput extends Message<JobOutput> {\n /**\n * Unique output identifier.\n *\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n /**\n * Output specification.\n *\n * @generated from field: transcodely.v1.OutputSpec spec = 2;\n */\n spec?: OutputSpec;\n\n /**\n * Current output status.\n *\n * @generated from field: transcodely.v1.OutputStatus status = 3;\n */\n status = OutputStatus.UNSPECIFIED;\n\n /**\n * Progress percentage (0-100).\n *\n * @generated from field: int32 progress = 4;\n */\n progress = 0;\n\n /**\n * Output URL (set when completed).\n *\n * @generated from field: optional string output_url = 5;\n */\n outputUrl?: string;\n\n /**\n * Output file size in bytes.\n *\n * @generated from field: optional int64 output_size_bytes = 6;\n */\n outputSizeBytes?: bigint;\n\n /**\n * Output duration in seconds (actual encoded duration).\n *\n * @generated from field: optional int64 duration_seconds = 7;\n */\n durationSeconds?: bigint;\n\n /**\n * Locked pricing snapshot (captured at job creation, used for all cost calculations).\n *\n * @generated from field: transcodely.v1.PricingSnapshot pricing = 8;\n */\n pricing?: PricingSnapshot;\n\n /**\n * Estimated duration in seconds (from input probe, before encoding).\n *\n * @generated from field: optional int64 estimated_duration_seconds = 9;\n */\n estimatedDurationSeconds?: bigint;\n\n /**\n * Estimated cost (calculated after probe using locked pricing and estimated duration).\n *\n * @generated from field: optional double estimated_cost = 10;\n */\n estimatedCost?: number;\n\n /**\n * Actual cost (calculated after encoding using locked pricing and actual duration).\n * For canceled outputs, this reflects cost of encoded portion.\n * For failed outputs, this is zero.\n *\n * @generated from field: optional double actual_cost = 11;\n */\n actualCost?: number;\n\n /**\n * Error code if failed.\n *\n * @generated from field: optional string error_code = 12;\n */\n errorCode?: string;\n\n /**\n * Error message if failed.\n *\n * @generated from field: optional string error_message = 13;\n */\n errorMessage?: string;\n\n /**\n * When the output started processing.\n *\n * @generated from field: optional google.protobuf.Timestamp started_at = 14;\n */\n startedAt?: Timestamp;\n\n /**\n * When the output completed.\n *\n * @generated from field: optional google.protobuf.Timestamp completed_at = 15;\n */\n completedAt?: Timestamp;\n\n /**\n * Resolved preset ID if this output was created from a preset reference.\n * This is set when the output was created using OutputSpec.preset.\n *\n * @generated from field: optional string preset_id = 16;\n */\n presetId?: string;\n\n /**\n * Resolved preset slug if this output was created from a preset reference.\n *\n * @generated from field: optional string preset_slug = 17;\n */\n presetSlug?: string;\n\n /**\n * Per-variant pricing for multi-variant outputs (ABR ladders).\n * For HLS/DASH outputs with multiple video variants, each variant has its own pricing.\n * The estimated_cost and actual_cost fields are the sum of all variant costs.\n * Empty for single-variant outputs (use pricing instead).\n *\n * @generated from field: repeated transcodely.v1.VariantPricingSnapshot variant_pricing = 20;\n */\n variantPricing: VariantPricingSnapshot[] = [];\n\n /**\n * Resource type discriminator. Always \"job_output\" for this message.\n * Lets webhook consumers and polyglot SDKs identify the resource without\n * out-of-band knowledge of the field name. Server-set; ignored on requests.\n *\n * @generated from field: string object = 21;\n */\n object = \"\";\n\n constructor(data?: PartialMessage<JobOutput>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.JobOutput\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"spec\", kind: \"message\", T: OutputSpec },\n { no: 3, name: \"status\", kind: \"enum\", T: proto3.getEnumType(OutputStatus) },\n { no: 4, name: \"progress\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n { no: 5, name: \"output_url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 6, name: \"output_size_bytes\", kind: \"scalar\", T: 3 /* ScalarType.INT64 */, opt: true },\n { no: 7, name: \"duration_seconds\", kind: \"scalar\", T: 3 /* ScalarType.INT64 */, opt: true },\n { no: 8, name: \"pricing\", kind: \"message\", T: PricingSnapshot },\n { no: 9, name: \"estimated_duration_seconds\", kind: \"scalar\", T: 3 /* ScalarType.INT64 */, opt: true },\n { no: 10, name: \"estimated_cost\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */, opt: true },\n { no: 11, name: \"actual_cost\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */, opt: true },\n { no: 12, name: \"error_code\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 13, name: \"error_message\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 14, name: \"started_at\", kind: \"message\", T: Timestamp, opt: true },\n { no: 15, name: \"completed_at\", kind: \"message\", T: Timestamp, opt: true },\n { no: 16, name: \"preset_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 17, name: \"preset_slug\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 20, name: \"variant_pricing\", kind: \"message\", T: VariantPricingSnapshot, repeated: true },\n { no: 21, name: \"object\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): JobOutput {\n return new JobOutput().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): JobOutput {\n return new JobOutput().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): JobOutput {\n return new JobOutput().fromJsonString(jsonString, options);\n }\n\n static equals(a: JobOutput | PlainMessage<JobOutput> | undefined, b: JobOutput | PlainMessage<JobOutput> | undefined): boolean {\n return proto3.util.equals(JobOutput, a, b);\n }\n}\n\n/**\n * Execution timing and telemetry for a job.\n * Populated after job processing begins. All durations are in milliseconds.\n *\n * @generated from message transcodely.v1.ExecutionTiming\n */\nexport class ExecutionTiming extends Message<ExecutionTiming> {\n /**\n * Worker instance details\n *\n * Hetzner server ID\n *\n * @generated from field: optional string instance_id = 1;\n */\n instanceId?: string;\n\n /**\n * cpx41, ccx33, etc.\n *\n * @generated from field: optional string instance_type = 2;\n */\n instanceType?: string;\n\n /**\n * fsn1, nbg1, hel1\n *\n * @generated from field: optional string instance_location = 3;\n */\n instanceLocation?: string;\n\n /**\n * Number of vCPUs\n *\n * @generated from field: optional int32 vcpu_count = 4;\n */\n vcpuCount?: number;\n\n /**\n * Memory in MB\n *\n * @generated from field: optional int32 memory_mb = 5;\n */\n memoryMb?: number;\n\n /**\n * Phase durations (all in milliseconds)\n *\n * Time to boot worker instance\n *\n * @generated from field: optional int64 boot_duration_ms = 10;\n */\n bootDurationMs?: bigint;\n\n /**\n * Time to download input file\n *\n * @generated from field: optional int64 download_duration_ms = 11;\n */\n downloadDurationMs?: bigint;\n\n /**\n * Time to probe input (ffprobe)\n *\n * @generated from field: optional int64 probe_duration_ms = 12;\n */\n probeDurationMs?: bigint;\n\n /**\n * Time for encoding phase\n *\n * @generated from field: optional int64 encode_duration_ms = 13;\n */\n encodeDurationMs?: bigint;\n\n /**\n * Time to upload outputs\n *\n * @generated from field: optional int64 upload_duration_ms = 14;\n */\n uploadDurationMs?: bigint;\n\n /**\n * Time for HLS/DASH packaging\n *\n * @generated from field: optional int64 packaging_duration_ms = 15;\n */\n packagingDurationMs?: bigint;\n\n /**\n * Total job processing time\n *\n * @generated from field: optional int64 total_duration_ms = 16;\n */\n totalDurationMs?: bigint;\n\n /**\n * Transfer statistics\n *\n * Input file size in bytes\n *\n * @generated from field: optional int64 download_bytes = 20;\n */\n downloadBytes?: bigint;\n\n /**\n * Download speed in Mbps\n *\n * @generated from field: optional double download_speed_mbps = 21;\n */\n downloadSpeedMbps?: number;\n\n /**\n * Total output size in bytes\n *\n * @generated from field: optional int64 upload_bytes = 22;\n */\n uploadBytes?: bigint;\n\n /**\n * Upload speed in Mbps\n *\n * @generated from field: optional double upload_speed_mbps = 23;\n */\n uploadSpeedMbps?: number;\n\n /**\n * Resource usage\n *\n * Average CPU utilization\n *\n * @generated from field: optional double avg_cpu_percent = 30;\n */\n avgCpuPercent?: number;\n\n /**\n * Peak CPU utilization\n *\n * @generated from field: optional double peak_cpu_percent = 31;\n */\n peakCpuPercent?: number;\n\n /**\n * Average memory usage in MB\n *\n * @generated from field: optional int32 avg_memory_mb = 32;\n */\n avgMemoryMb?: number;\n\n /**\n * Peak memory usage in MB\n *\n * @generated from field: optional int32 peak_memory_mb = 33;\n */\n peakMemoryMb?: number;\n\n /**\n * Chunk encoding (when enabled)\n *\n * Number of parallel chunks\n *\n * @generated from field: optional int32 chunk_count = 40;\n */\n chunkCount?: number;\n\n /**\n * gop_aligned, scene_detect, etc.\n *\n * @generated from field: optional string chunk_strategy = 41;\n */\n chunkStrategy?: string;\n\n /**\n * Exit status\n *\n * Worker exit code (0 = success)\n *\n * @generated from field: optional int32 exit_code = 50;\n */\n exitCode?: number;\n\n /**\n * Human-readable exit reason\n *\n * @generated from field: optional string exit_reason = 51;\n */\n exitReason?: string;\n\n constructor(data?: PartialMessage<ExecutionTiming>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.ExecutionTiming\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"instance_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 2, name: \"instance_type\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 3, name: \"instance_location\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 4, name: \"vcpu_count\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 5, name: \"memory_mb\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 10, name: \"boot_duration_ms\", kind: \"scalar\", T: 3 /* ScalarType.INT64 */, opt: true },\n { no: 11, name: \"download_duration_ms\", kind: \"scalar\", T: 3 /* ScalarType.INT64 */, opt: true },\n { no: 12, name: \"probe_duration_ms\", kind: \"scalar\", T: 3 /* ScalarType.INT64 */, opt: true },\n { no: 13, name: \"encode_duration_ms\", kind: \"scalar\", T: 3 /* ScalarType.INT64 */, opt: true },\n { no: 14, name: \"upload_duration_ms\", kind: \"scalar\", T: 3 /* ScalarType.INT64 */, opt: true },\n { no: 15, name: \"packaging_duration_ms\", kind: \"scalar\", T: 3 /* ScalarType.INT64 */, opt: true },\n { no: 16, name: \"total_duration_ms\", kind: \"scalar\", T: 3 /* ScalarType.INT64 */, opt: true },\n { no: 20, name: \"download_bytes\", kind: \"scalar\", T: 3 /* ScalarType.INT64 */, opt: true },\n { no: 21, name: \"download_speed_mbps\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */, opt: true },\n { no: 22, name: \"upload_bytes\", kind: \"scalar\", T: 3 /* ScalarType.INT64 */, opt: true },\n { no: 23, name: \"upload_speed_mbps\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */, opt: true },\n { no: 30, name: \"avg_cpu_percent\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */, opt: true },\n { no: 31, name: \"peak_cpu_percent\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */, opt: true },\n { no: 32, name: \"avg_memory_mb\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 33, name: \"peak_memory_mb\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 40, name: \"chunk_count\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 41, name: \"chunk_strategy\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 50, name: \"exit_code\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 51, name: \"exit_reason\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ExecutionTiming {\n return new ExecutionTiming().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ExecutionTiming {\n return new ExecutionTiming().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ExecutionTiming {\n return new ExecutionTiming().fromJsonString(jsonString, options);\n }\n\n static equals(a: ExecutionTiming | PlainMessage<ExecutionTiming> | undefined, b: ExecutionTiming | PlainMessage<ExecutionTiming> | undefined): boolean {\n return proto3.util.equals(ExecutionTiming, a, b);\n }\n}\n\n/**\n * A transcoding job with multiple outputs.\n *\n * @generated from message transcodely.v1.Job\n */\nexport class Job extends Message<Job> {\n /**\n * Unique job identifier (e.g., \"job_a1b2c3d4e5f6\").\n *\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n /**\n * URL of the input video file (direct URL mode).\n * Set if the job was created with input_url.\n *\n * @generated from field: string input_url = 2;\n */\n inputUrl = \"\";\n\n /**\n * Input origin reference (origin mode).\n * Set if the job was created with input_origin_id.\n *\n * @generated from field: optional transcodely.v1.OriginRef input_origin = 22;\n */\n inputOrigin?: OriginRef;\n\n /**\n * Output origin reference (origin mode).\n * Set if the job was created with output_origin_id.\n *\n * @generated from field: optional transcodely.v1.OriginRef output_origin = 23;\n */\n outputOrigin?: OriginRef;\n\n /**\n * Current job status.\n *\n * @generated from field: transcodely.v1.JobStatus status = 3;\n */\n status = JobStatus.UNSPECIFIED;\n\n /**\n * Overall progress percentage (0-100).\n * Calculated as average of all output progresses.\n *\n * @generated from field: int32 progress = 4;\n */\n progress = 0;\n\n /**\n * Job priority.\n *\n * @generated from field: transcodely.v1.JobPriority priority = 5;\n */\n priority = JobPriority.UNSPECIFIED;\n\n /**\n * Input file metadata (populated after probing).\n * See media.proto for field details.\n *\n * @generated from field: optional transcodely.v1.InputMetadata input_metadata = 6;\n */\n inputMetadata?: InputMetadata;\n\n /**\n * Output renditions.\n *\n * @generated from field: repeated transcodely.v1.JobOutput outputs = 7;\n */\n outputs: JobOutput[] = [];\n\n /**\n * Total estimated cost (sum of all outputs, calculated after probe).\n *\n * @generated from field: optional double total_estimated_cost = 8;\n */\n totalEstimatedCost?: number;\n\n /**\n * Total actual cost (sum of completed/canceled outputs).\n * Failed outputs contribute zero to this total.\n *\n * @generated from field: optional double total_actual_cost = 9;\n */\n totalActualCost?: number;\n\n /**\n * Error code if status is FAILED.\n *\n * @generated from field: optional string error_code = 10;\n */\n errorCode?: string;\n\n /**\n * Error message if status is FAILED.\n *\n * @generated from field: optional string error_message = 11;\n */\n errorMessage?: string;\n\n /**\n * URL to receive webhook notifications.\n *\n * @generated from field: optional string webhook_url = 12;\n */\n webhookUrl?: string;\n\n /**\n * User-provided metadata (key-value pairs).\n *\n * @generated from field: map<string, string> metadata = 13;\n */\n metadata: { [key: string]: string } = {};\n\n /**\n * When the job was created.\n *\n * @generated from field: google.protobuf.Timestamp created_at = 14;\n */\n createdAt?: Timestamp;\n\n /**\n * When the job was last updated.\n *\n * @generated from field: google.protobuf.Timestamp updated_at = 15;\n */\n updatedAt?: Timestamp;\n\n /**\n * When input probing completed.\n *\n * @generated from field: optional google.protobuf.Timestamp probed_at = 16;\n */\n probedAt?: Timestamp;\n\n /**\n * When processing started.\n *\n * @generated from field: optional google.protobuf.Timestamp started_at = 17;\n */\n startedAt?: Timestamp;\n\n /**\n * When the job completed (success, failure, or cancellation).\n *\n * @generated from field: optional google.protobuf.Timestamp completed_at = 18;\n */\n completedAt?: Timestamp;\n\n /**\n * Whether this job requires confirmation before encoding starts.\n * If true, job will move to AWAITING_CONFIRMATION after probing.\n *\n * @generated from field: bool delayed_start = 19;\n */\n delayedStart = false;\n\n /**\n * When the job was confirmed (for delayed start jobs only).\n *\n * @generated from field: optional google.protobuf.Timestamp confirmed_at = 20;\n */\n confirmedAt?: Timestamp;\n\n /**\n * Currency for all cost fields (ISO 4217 code, e.g., \"EUR\", \"USD\").\n *\n * @generated from field: string currency = 21;\n */\n currency = \"\";\n\n /**\n * Execution timing and telemetry (populated after processing starts).\n * Non-optional so EmitUnpopulated emits as null when not set.\n *\n * @generated from field: transcodely.v1.ExecutionTiming execution = 24;\n */\n execution?: ExecutionTiming;\n\n /**\n * Thumbnail generation specifications (echoed from request).\n *\n * @generated from field: repeated transcodely.v1.ThumbnailSpec thumbnails = 25;\n */\n thumbnails: ThumbnailSpec[] = [];\n\n /**\n * Job-level output path template (echoed from request).\n * Variables: {job_id}, {output_id}, {date}, {timestamp}, {codec}, {resolution}, {format}, {quality}, {output_index}, {uuid}\n * Empty when the request did not specify one; outputs then fall back to\n * their own path_template (if set), the origin's path_template, or the\n * default \"{job_id}/{output_id}\".\n *\n * @generated from field: optional string output_path_template = 26;\n */\n outputPathTemplate?: string;\n\n /**\n * Resource type discriminator. Always \"job\" for this message.\n * Lets webhook consumers and polyglot SDKs identify the resource without\n * out-of-band knowledge of the field name. Server-set; ignored on requests.\n *\n * @generated from field: string object = 27;\n */\n object = \"\";\n\n constructor(data?: PartialMessage<Job>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.Job\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"input_url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 22, name: \"input_origin\", kind: \"message\", T: OriginRef, opt: true },\n { no: 23, name: \"output_origin\", kind: \"message\", T: OriginRef, opt: true },\n { no: 3, name: \"status\", kind: \"enum\", T: proto3.getEnumType(JobStatus) },\n { no: 4, name: \"progress\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n { no: 5, name: \"priority\", kind: \"enum\", T: proto3.getEnumType(JobPriority) },\n { no: 6, name: \"input_metadata\", kind: \"message\", T: InputMetadata, opt: true },\n { no: 7, name: \"outputs\", kind: \"message\", T: JobOutput, repeated: true },\n { no: 8, name: \"total_estimated_cost\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */, opt: true },\n { no: 9, name: \"total_actual_cost\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */, opt: true },\n { no: 10, name: \"error_code\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 11, name: \"error_message\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 12, name: \"webhook_url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 13, name: \"metadata\", kind: \"map\", K: 9 /* ScalarType.STRING */, V: {kind: \"scalar\", T: 9 /* ScalarType.STRING */} },\n { no: 14, name: \"created_at\", kind: \"message\", T: Timestamp },\n { no: 15, name: \"updated_at\", kind: \"message\", T: Timestamp },\n { no: 16, name: \"probed_at\", kind: \"message\", T: Timestamp, opt: true },\n { no: 17, name: \"started_at\", kind: \"message\", T: Timestamp, opt: true },\n { no: 18, name: \"completed_at\", kind: \"message\", T: Timestamp, opt: true },\n { no: 19, name: \"delayed_start\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 20, name: \"confirmed_at\", kind: \"message\", T: Timestamp, opt: true },\n { no: 21, name: \"currency\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 24, name: \"execution\", kind: \"message\", T: ExecutionTiming },\n { no: 25, name: \"thumbnails\", kind: \"message\", T: ThumbnailSpec, repeated: true },\n { no: 26, name: \"output_path_template\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 27, name: \"object\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): Job {\n return new Job().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): Job {\n return new Job().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): Job {\n return new Job().fromJsonString(jsonString, options);\n }\n\n static equals(a: Job | PlainMessage<Job> | undefined, b: Job | PlainMessage<Job> | undefined): boolean {\n return proto3.util.equals(Job, a, b);\n }\n}\n\n/**\n * Request to create a new job.\n *\n * @generated from message transcodely.v1.CreateJobRequest\n */\nexport class CreateJobRequest extends Message<CreateJobRequest> {\n /**\n * URL of the input video file (direct URL mode).\n * Supported schemes: gs://, s3://, https://\n * Use this OR input_origin_id, not both.\n *\n * @generated from field: string input_url = 1;\n */\n inputUrl = \"\";\n\n /**\n * Origin ID for the input source (origin mode).\n * The origin must have read permission.\n * Use this OR input_url, not both.\n *\n * @generated from field: optional string input_origin_id = 9;\n */\n inputOriginId?: string;\n\n /**\n * Path to the input file within the input origin.\n * Required when using input_origin_id.\n * Example: \"uploads/video.mp4\" or \"{job_id}/source.mp4\"\n *\n * @generated from field: optional string input_path = 10;\n */\n inputPath?: string;\n\n /**\n * Origin ID for outputs (origin mode).\n * If specified, all outputs will be written to this origin.\n * The origin must have write permission.\n *\n * @generated from field: optional string output_origin_id = 11;\n */\n outputOriginId?: string;\n\n /**\n * Output specifications (at least one required).\n *\n * @generated from field: repeated transcodely.v1.OutputSpec outputs = 2;\n */\n outputs: OutputSpec[] = [];\n\n /**\n * Job priority (affects processing order and cost).\n *\n * @generated from field: transcodely.v1.JobPriority priority = 3;\n */\n priority = JobPriority.UNSPECIFIED;\n\n /**\n * Optional webhook URL for status notifications.\n *\n * @generated from field: optional string webhook_url = 4;\n */\n webhookUrl?: string;\n\n /**\n * Optional idempotency key.\n * If provided, duplicate requests with the same key return the existing job.\n *\n * @generated from field: optional string idempotency_key = 5;\n */\n idempotencyKey?: string;\n\n /**\n * User-provided metadata (key-value pairs, max 20 entries).\n *\n * @generated from field: map<string, string> metadata = 6;\n */\n metadata: { [key: string]: string } = {};\n\n /**\n * If true, job will pause after probing in AWAITING_CONFIRMATION status.\n * Customer can review the estimated cost and call ConfirmJob to proceed.\n * Default: false (immediate execution).\n *\n * @generated from field: bool delayed_start = 7;\n */\n delayedStart = false;\n\n /**\n * Thumbnail generation specifications.\n * Maximum 5 thumbnail specs per job. Thumbnails are free (bundled with transcoding).\n *\n * @generated from field: repeated transcodely.v1.ThumbnailSpec thumbnails = 8;\n */\n thumbnails: ThumbnailSpec[] = [];\n\n /**\n * Job-level output path template — a job-wide prefix applied to every output.\n * When an output also sets its own path_template, the two compose\n * ADDITIVELY: the effective template is\n * \"<output_path_template>/<output.path_template>\". An output without its own\n * path_template uses this template alone.\n *\n * Variables: {job_id}, {output_id}, {date}, {format}, {codec}, {resolution}, {quality}\n *\n * Example (additive): output_path_template = \"videos/{job_id}\" + output's\n * path_template = \"{codec}-{resolution}\" → \"videos/job_abc/h264-1080p.mp4\".\n *\n * Example (standalone): \"videos/{date}/{job_id}/{resolution}\" produces\n * \"videos/2024-01-15/job_abc123/1080p/master.m3u8\".\n *\n * If neither this nor a per-output path_template is set, falls back to the\n * output origin's path_template or the default \"{job_id}/{output_id}\".\n * Must not start with `/` or contain `..` (no path traversal).\n *\n * @generated from field: optional string output_path_template = 12;\n */\n outputPathTemplate?: string;\n\n /**\n * Write outputs to managed hosting storage and create a video record.\n * When true, output_origin_id is not required.\n *\n * @generated from field: optional bool managed = 20;\n */\n managed?: boolean;\n\n constructor(data?: PartialMessage<CreateJobRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.CreateJobRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"input_url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 9, name: \"input_origin_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 10, name: \"input_path\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 11, name: \"output_origin_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 2, name: \"outputs\", kind: \"message\", T: OutputSpec, repeated: true },\n { no: 3, name: \"priority\", kind: \"enum\", T: proto3.getEnumType(JobPriority) },\n { no: 4, name: \"webhook_url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 5, name: \"idempotency_key\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 6, name: \"metadata\", kind: \"map\", K: 9 /* ScalarType.STRING */, V: {kind: \"scalar\", T: 9 /* ScalarType.STRING */} },\n { no: 7, name: \"delayed_start\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 8, name: \"thumbnails\", kind: \"message\", T: ThumbnailSpec, repeated: true },\n { no: 12, name: \"output_path_template\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 20, name: \"managed\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CreateJobRequest {\n return new CreateJobRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CreateJobRequest {\n return new CreateJobRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CreateJobRequest {\n return new CreateJobRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: CreateJobRequest | PlainMessage<CreateJobRequest> | undefined, b: CreateJobRequest | PlainMessage<CreateJobRequest> | undefined): boolean {\n return proto3.util.equals(CreateJobRequest, a, b);\n }\n}\n\n/**\n * Response from creating a job.\n *\n * @generated from message transcodely.v1.CreateJobResponse\n */\nexport class CreateJobResponse extends Message<CreateJobResponse> {\n /**\n * The created job.\n *\n * @generated from field: transcodely.v1.Job job = 1;\n */\n job?: Job;\n\n /**\n * Video ID created for managed output (only present when managed=true).\n *\n * @generated from field: optional string video_id = 5;\n */\n videoId?: string;\n\n constructor(data?: PartialMessage<CreateJobResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.CreateJobResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"job\", kind: \"message\", T: Job },\n { no: 5, name: \"video_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CreateJobResponse {\n return new CreateJobResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CreateJobResponse {\n return new CreateJobResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CreateJobResponse {\n return new CreateJobResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: CreateJobResponse | PlainMessage<CreateJobResponse> | undefined, b: CreateJobResponse | PlainMessage<CreateJobResponse> | undefined): boolean {\n return proto3.util.equals(CreateJobResponse, a, b);\n }\n}\n\n/**\n * Request to get a job.\n *\n * @generated from message transcodely.v1.GetJobRequest\n */\nexport class GetJobRequest extends Message<GetJobRequest> {\n /**\n * ID of the job to retrieve.\n *\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n constructor(data?: PartialMessage<GetJobRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.GetJobRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetJobRequest {\n return new GetJobRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetJobRequest {\n return new GetJobRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetJobRequest {\n return new GetJobRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: GetJobRequest | PlainMessage<GetJobRequest> | undefined, b: GetJobRequest | PlainMessage<GetJobRequest> | undefined): boolean {\n return proto3.util.equals(GetJobRequest, a, b);\n }\n}\n\n/**\n * Response from getting a job.\n *\n * @generated from message transcodely.v1.GetJobResponse\n */\nexport class GetJobResponse extends Message<GetJobResponse> {\n /**\n * The requested job.\n *\n * @generated from field: transcodely.v1.Job job = 1;\n */\n job?: Job;\n\n constructor(data?: PartialMessage<GetJobResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.GetJobResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"job\", kind: \"message\", T: Job },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetJobResponse {\n return new GetJobResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetJobResponse {\n return new GetJobResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetJobResponse {\n return new GetJobResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: GetJobResponse | PlainMessage<GetJobResponse> | undefined, b: GetJobResponse | PlainMessage<GetJobResponse> | undefined): boolean {\n return proto3.util.equals(GetJobResponse, a, b);\n }\n}\n\n/**\n * Request to list jobs.\n *\n * @generated from message transcodely.v1.ListJobsRequest\n */\nexport class ListJobsRequest extends Message<ListJobsRequest> {\n /**\n * Optional status filter.\n *\n * @generated from field: optional transcodely.v1.JobStatus status = 1;\n */\n status?: JobStatus;\n\n /**\n * Pagination parameters.\n *\n * @generated from field: transcodely.v1.PaginationRequest pagination = 2;\n */\n pagination?: PaginationRequest;\n\n constructor(data?: PartialMessage<ListJobsRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.ListJobsRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"status\", kind: \"enum\", T: proto3.getEnumType(JobStatus), opt: true },\n { no: 2, name: \"pagination\", kind: \"message\", T: PaginationRequest },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListJobsRequest {\n return new ListJobsRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListJobsRequest {\n return new ListJobsRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListJobsRequest {\n return new ListJobsRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: ListJobsRequest | PlainMessage<ListJobsRequest> | undefined, b: ListJobsRequest | PlainMessage<ListJobsRequest> | undefined): boolean {\n return proto3.util.equals(ListJobsRequest, a, b);\n }\n}\n\n/**\n * Response from listing jobs.\n *\n * @generated from message transcodely.v1.ListJobsResponse\n */\nexport class ListJobsResponse extends Message<ListJobsResponse> {\n /**\n * List of jobs.\n *\n * @generated from field: repeated transcodely.v1.Job jobs = 1;\n */\n jobs: Job[] = [];\n\n /**\n * Pagination metadata.\n *\n * @generated from field: transcodely.v1.PaginationResponse pagination = 2;\n */\n pagination?: PaginationResponse;\n\n constructor(data?: PartialMessage<ListJobsResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.ListJobsResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"jobs\", kind: \"message\", T: Job, repeated: true },\n { no: 2, name: \"pagination\", kind: \"message\", T: PaginationResponse },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListJobsResponse {\n return new ListJobsResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListJobsResponse {\n return new ListJobsResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListJobsResponse {\n return new ListJobsResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: ListJobsResponse | PlainMessage<ListJobsResponse> | undefined, b: ListJobsResponse | PlainMessage<ListJobsResponse> | undefined): boolean {\n return proto3.util.equals(ListJobsResponse, a, b);\n }\n}\n\n/**\n * Request to cancel a job.\n *\n * @generated from message transcodely.v1.CancelJobRequest\n */\nexport class CancelJobRequest extends Message<CancelJobRequest> {\n /**\n * ID of the job to cancel.\n *\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n constructor(data?: PartialMessage<CancelJobRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.CancelJobRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CancelJobRequest {\n return new CancelJobRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CancelJobRequest {\n return new CancelJobRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CancelJobRequest {\n return new CancelJobRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: CancelJobRequest | PlainMessage<CancelJobRequest> | undefined, b: CancelJobRequest | PlainMessage<CancelJobRequest> | undefined): boolean {\n return proto3.util.equals(CancelJobRequest, a, b);\n }\n}\n\n/**\n * Response from cancelling a job.\n *\n * @generated from message transcodely.v1.CancelJobResponse\n */\nexport class CancelJobResponse extends Message<CancelJobResponse> {\n /**\n * The canceled job.\n *\n * @generated from field: transcodely.v1.Job job = 1;\n */\n job?: Job;\n\n constructor(data?: PartialMessage<CancelJobResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.CancelJobResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"job\", kind: \"message\", T: Job },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CancelJobResponse {\n return new CancelJobResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CancelJobResponse {\n return new CancelJobResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CancelJobResponse {\n return new CancelJobResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: CancelJobResponse | PlainMessage<CancelJobResponse> | undefined, b: CancelJobResponse | PlainMessage<CancelJobResponse> | undefined): boolean {\n return proto3.util.equals(CancelJobResponse, a, b);\n }\n}\n\n/**\n * Request to confirm a delayed start job.\n *\n * @generated from message transcodely.v1.ConfirmJobRequest\n */\nexport class ConfirmJobRequest extends Message<ConfirmJobRequest> {\n /**\n * ID of the job to confirm.\n *\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n constructor(data?: PartialMessage<ConfirmJobRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.ConfirmJobRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ConfirmJobRequest {\n return new ConfirmJobRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ConfirmJobRequest {\n return new ConfirmJobRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ConfirmJobRequest {\n return new ConfirmJobRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: ConfirmJobRequest | PlainMessage<ConfirmJobRequest> | undefined, b: ConfirmJobRequest | PlainMessage<ConfirmJobRequest> | undefined): boolean {\n return proto3.util.equals(ConfirmJobRequest, a, b);\n }\n}\n\n/**\n * Response from confirming a job.\n *\n * @generated from message transcodely.v1.ConfirmJobResponse\n */\nexport class ConfirmJobResponse extends Message<ConfirmJobResponse> {\n /**\n * The confirmed job (status will be PROCESSING).\n *\n * @generated from field: transcodely.v1.Job job = 1;\n */\n job?: Job;\n\n constructor(data?: PartialMessage<ConfirmJobResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.ConfirmJobResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"job\", kind: \"message\", T: Job },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ConfirmJobResponse {\n return new ConfirmJobResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ConfirmJobResponse {\n return new ConfirmJobResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ConfirmJobResponse {\n return new ConfirmJobResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: ConfirmJobResponse | PlainMessage<ConfirmJobResponse> | undefined, b: ConfirmJobResponse | PlainMessage<ConfirmJobResponse> | undefined): boolean {\n return proto3.util.equals(ConfirmJobResponse, a, b);\n }\n}\n\n/**\n * Request to watch a job for real-time updates.\n *\n * @generated from message transcodely.v1.WatchJobRequest\n */\nexport class WatchJobRequest extends Message<WatchJobRequest> {\n /**\n * ID of the job to watch.\n *\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n constructor(data?: PartialMessage<WatchJobRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.WatchJobRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): WatchJobRequest {\n return new WatchJobRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): WatchJobRequest {\n return new WatchJobRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): WatchJobRequest {\n return new WatchJobRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: WatchJobRequest | PlainMessage<WatchJobRequest> | undefined, b: WatchJobRequest | PlainMessage<WatchJobRequest> | undefined): boolean {\n return proto3.util.equals(WatchJobRequest, a, b);\n }\n}\n\n/**\n * Response streamed to clients watching a job.\n *\n * @generated from message transcodely.v1.WatchJobResponse\n */\nexport class WatchJobResponse extends Message<WatchJobResponse> {\n /**\n * The current job state.\n *\n * @generated from field: transcodely.v1.Job job = 1;\n */\n job?: Job;\n\n /**\n * Type of event that triggered this update.\n *\n * @generated from field: transcodely.v1.WatchEventType event = 2;\n */\n event = WatchEventType.UNSPECIFIED;\n\n /**\n * Server timestamp when this event was generated.\n *\n * @generated from field: google.protobuf.Timestamp server_time = 3;\n */\n serverTime?: Timestamp;\n\n constructor(data?: PartialMessage<WatchJobResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.WatchJobResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"job\", kind: \"message\", T: Job },\n { no: 2, name: \"event\", kind: \"enum\", T: proto3.getEnumType(WatchEventType) },\n { no: 3, name: \"server_time\", kind: \"message\", T: Timestamp },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): WatchJobResponse {\n return new WatchJobResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): WatchJobResponse {\n return new WatchJobResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): WatchJobResponse {\n return new WatchJobResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: WatchJobResponse | PlainMessage<WatchJobResponse> | undefined, b: WatchJobResponse | PlainMessage<WatchJobResponse> | undefined): boolean {\n return proto3.util.equals(WatchJobResponse, a, b);\n }\n}\n\n","// Video service for video hosting and delivery.\n// Videos represent hosted media assets with playback, storage tracking, and usage metering.\n\n// @generated by protoc-gen-es v1.10.0 with parameter \"target=ts,import_extension=.js\"\n// @generated from file transcodely/v1/video.proto (package transcodely.v1, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from \"@bufbuild/protobuf\";\nimport { Message, proto3, protoInt64, Timestamp } from \"@bufbuild/protobuf\";\n\n/**\n * Video lifecycle status.\n *\n * @generated from enum transcodely.v1.VideoStatus\n */\nexport enum VideoStatus {\n /**\n * Default value, should not be used.\n *\n * @generated from enum value: VIDEO_STATUS_UNSPECIFIED = 0;\n */\n UNSPECIFIED = 0,\n\n /**\n * Upload in progress (presigned URL issued, awaiting CompleteUpload).\n *\n * @generated from enum value: VIDEO_STATUS_UPLOADING = 1;\n */\n UPLOADING = 1,\n\n /**\n * Video is being processed (probe, transcode, packaging).\n *\n * @generated from enum value: VIDEO_STATUS_PROCESSING = 2;\n */\n PROCESSING = 2,\n\n /**\n * Video is ready for playback.\n *\n * @generated from enum value: VIDEO_STATUS_READY = 3;\n */\n READY = 3,\n\n /**\n * Processing failed.\n *\n * @generated from enum value: VIDEO_STATUS_ERROR = 4;\n */\n ERROR = 4,\n\n /**\n * Video has been archived (not actively served, storage retained).\n *\n * @generated from enum value: VIDEO_STATUS_ARCHIVED = 5;\n */\n ARCHIVED = 5,\n\n /**\n * Video has been deleted (pending cleanup).\n *\n * @generated from enum value: VIDEO_STATUS_DELETED = 6;\n */\n DELETED = 6,\n}\n// Retrieve enum metadata with: proto3.getEnumType(VideoStatus)\nproto3.util.setEnumType(VideoStatus, \"transcodely.v1.VideoStatus\", [\n { no: 0, name: \"VIDEO_STATUS_UNSPECIFIED\" },\n { no: 1, name: \"VIDEO_STATUS_UPLOADING\" },\n { no: 2, name: \"VIDEO_STATUS_PROCESSING\" },\n { no: 3, name: \"VIDEO_STATUS_READY\" },\n { no: 4, name: \"VIDEO_STATUS_ERROR\" },\n { no: 5, name: \"VIDEO_STATUS_ARCHIVED\" },\n { no: 6, name: \"VIDEO_STATUS_DELETED\" },\n]);\n\n/**\n * Video visibility controls who can access the video.\n *\n * @generated from enum transcodely.v1.VideoVisibility\n */\nexport enum VideoVisibility {\n /**\n * Default value, should not be used.\n *\n * @generated from enum value: VIDEO_VISIBILITY_UNSPECIFIED = 0;\n */\n UNSPECIFIED = 0,\n\n /**\n * Anyone with the playback URL can view.\n *\n * @generated from enum value: VIDEO_VISIBILITY_PUBLIC = 1;\n */\n PUBLIC = 1,\n\n /**\n * Accessible only via direct link (not listed in public indexes).\n *\n * @generated from enum value: VIDEO_VISIBILITY_UNLISTED = 2;\n */\n UNLISTED = 2,\n\n /**\n * Requires authentication to view.\n *\n * @generated from enum value: VIDEO_VISIBILITY_PRIVATE = 3;\n */\n PRIVATE = 3,\n}\n// Retrieve enum metadata with: proto3.getEnumType(VideoVisibility)\nproto3.util.setEnumType(VideoVisibility, \"transcodely.v1.VideoVisibility\", [\n { no: 0, name: \"VIDEO_VISIBILITY_UNSPECIFIED\" },\n { no: 1, name: \"VIDEO_VISIBILITY_PUBLIC\" },\n { no: 2, name: \"VIDEO_VISIBILITY_UNLISTED\" },\n { no: 3, name: \"VIDEO_VISIBILITY_PRIVATE\" },\n]);\n\n/**\n * A hosted video asset with playback, storage, and cost tracking.\n *\n * @generated from message transcodely.v1.Video\n */\nexport class Video extends Message<Video> {\n /**\n * Unique video identifier (e.g., \"vid_a1b2c3d4e5f6\").\n *\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n /**\n * App that owns this video.\n *\n * @generated from field: string app_id = 2;\n */\n appId = \"\";\n\n /**\n * How the video was created: \"upload\" (direct upload) or \"job\" (from transcoding job).\n *\n * @generated from field: string source = 3;\n */\n source = \"\";\n\n /**\n * Current lifecycle status.\n *\n * @generated from field: string status = 4;\n */\n status = \"\";\n\n /**\n * Visibility setting.\n *\n * @generated from field: string visibility = 5;\n */\n visibility = \"\";\n\n /**\n * Content metadata\n *\n * @generated from field: optional string title = 6;\n */\n title?: string;\n\n /**\n * @generated from field: optional string description = 7;\n */\n description?: string;\n\n /**\n * @generated from field: repeated string tags = 8;\n */\n tags: string[] = [];\n\n /**\n * Input file details\n *\n * @generated from field: optional int64 input_size_bytes = 10;\n */\n inputSizeBytes?: bigint;\n\n /**\n * @generated from field: optional string input_content_type = 11;\n */\n inputContentType?: string;\n\n /**\n * Linked transcoding job (set when source is \"job\" or after upload triggers transcoding).\n *\n * @generated from field: optional string job_id = 15;\n */\n jobId?: string;\n\n /**\n * Preset reference used to drive auto-transcoding for this video, if any.\n * Either a preset ID (e.g., \"pst_abc123\") or slug (e.g., \"gaming_1080p_60_standard\").\n * Set via CreateUpload; if absent the app's default auto-profile is used.\n *\n * @generated from field: optional string preset = 16;\n */\n preset?: string;\n\n /**\n * Playback (computed per-request, not stored — signed CDN tokens).\n *\n * @generated from field: optional string playback_url = 20;\n */\n playbackUrl?: string;\n\n /**\n * @generated from field: optional string embed_url = 21;\n */\n embedUrl?: string;\n\n /**\n * @generated from field: optional string embed_code = 22;\n */\n embedCode?: string;\n\n /**\n * @generated from field: optional string poster_url = 23;\n */\n posterUrl?: string;\n\n /**\n * @generated from field: optional double duration_seconds = 24;\n */\n durationSeconds?: number;\n\n /**\n * Renditions available for playback.\n *\n * @generated from field: repeated transcodely.v1.VideoRendition renditions = 25;\n */\n renditions: VideoRendition[] = [];\n\n /**\n * Storage and cost transparency.\n *\n * @generated from field: int64 output_size_bytes = 30;\n */\n outputSizeBytes = protoInt64.zero;\n\n /**\n * @generated from field: optional double encoding_cost = 31;\n */\n encodingCost?: number;\n\n /**\n * @generated from field: optional double storage_cost_monthly = 32;\n */\n storageCostMonthly?: number;\n\n /**\n * @generated from field: optional double egress_total = 33;\n */\n egressTotal?: number;\n\n /**\n * Timestamps.\n *\n * @generated from field: google.protobuf.Timestamp created_at = 40;\n */\n createdAt?: Timestamp;\n\n /**\n * @generated from field: google.protobuf.Timestamp updated_at = 41;\n */\n updatedAt?: Timestamp;\n\n /**\n * @generated from field: optional google.protobuf.Timestamp ready_at = 42;\n */\n readyAt?: Timestamp;\n\n /**\n * Resource type discriminator. Always \"video\" for this message.\n * Lets webhook consumers and polyglot SDKs identify the resource without\n * out-of-band knowledge of the field name. Server-set; ignored on requests.\n *\n * @generated from field: string object = 43;\n */\n object = \"\";\n\n constructor(data?: PartialMessage<Video>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.Video\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"app_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"source\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"status\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 5, name: \"visibility\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 6, name: \"title\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 7, name: \"description\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 8, name: \"tags\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n { no: 10, name: \"input_size_bytes\", kind: \"scalar\", T: 3 /* ScalarType.INT64 */, opt: true },\n { no: 11, name: \"input_content_type\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 15, name: \"job_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 16, name: \"preset\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 20, name: \"playback_url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 21, name: \"embed_url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 22, name: \"embed_code\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 23, name: \"poster_url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 24, name: \"duration_seconds\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */, opt: true },\n { no: 25, name: \"renditions\", kind: \"message\", T: VideoRendition, repeated: true },\n { no: 30, name: \"output_size_bytes\", kind: \"scalar\", T: 3 /* ScalarType.INT64 */ },\n { no: 31, name: \"encoding_cost\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */, opt: true },\n { no: 32, name: \"storage_cost_monthly\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */, opt: true },\n { no: 33, name: \"egress_total\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */, opt: true },\n { no: 40, name: \"created_at\", kind: \"message\", T: Timestamp },\n { no: 41, name: \"updated_at\", kind: \"message\", T: Timestamp },\n { no: 42, name: \"ready_at\", kind: \"message\", T: Timestamp, opt: true },\n { no: 43, name: \"object\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): Video {\n return new Video().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): Video {\n return new Video().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): Video {\n return new Video().fromJsonString(jsonString, options);\n }\n\n static equals(a: Video | PlainMessage<Video> | undefined, b: Video | PlainMessage<Video> | undefined): boolean {\n return proto3.util.equals(Video, a, b);\n }\n}\n\n/**\n * A single encoded rendition of a video.\n *\n * @generated from message transcodely.v1.VideoRendition\n */\nexport class VideoRendition extends Message<VideoRendition> {\n /**\n * Unique rendition identifier (e.g., \"ren_a1b2c3d4e5f6\").\n *\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n /**\n * Resolution label (e.g., \"1080p\", \"720p\").\n *\n * @generated from field: string resolution = 2;\n */\n resolution = \"\";\n\n /**\n * Video codec used (e.g., \"h264\", \"h265\").\n *\n * @generated from field: string codec = 3;\n */\n codec = \"\";\n\n /**\n * Average bitrate in kilobits per second.\n *\n * @generated from field: int32 bitrate_kbps = 4;\n */\n bitrateKbps = 0;\n\n /**\n * Frame width in pixels.\n *\n * @generated from field: int32 width = 5;\n */\n width = 0;\n\n /**\n * Frame height in pixels.\n *\n * @generated from field: int32 height = 6;\n */\n height = 0;\n\n /**\n * Encoded file size in bytes.\n *\n * @generated from field: int64 size_bytes = 7;\n */\n sizeBytes = protoInt64.zero;\n\n constructor(data?: PartialMessage<VideoRendition>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.VideoRendition\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"resolution\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"codec\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"bitrate_kbps\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n { no: 5, name: \"width\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n { no: 6, name: \"height\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n { no: 7, name: \"size_bytes\", kind: \"scalar\", T: 3 /* ScalarType.INT64 */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): VideoRendition {\n return new VideoRendition().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): VideoRendition {\n return new VideoRendition().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): VideoRendition {\n return new VideoRendition().fromJsonString(jsonString, options);\n }\n\n static equals(a: VideoRendition | PlainMessage<VideoRendition> | undefined, b: VideoRendition | PlainMessage<VideoRendition> | undefined): boolean {\n return proto3.util.equals(VideoRendition, a, b);\n }\n}\n\n/**\n * Request to create a presigned upload URL for direct client upload.\n *\n * @generated from message transcodely.v1.CreateUploadRequest\n */\nexport class CreateUploadRequest extends Message<CreateUploadRequest> {\n /**\n * App to create the video under. Required — must have hosting enabled.\n *\n * @generated from field: string app_id = 8;\n */\n appId = \"\";\n\n /**\n * Original filename (used for content-type detection and display).\n *\n * @generated from field: string filename = 1;\n */\n filename = \"\";\n\n /**\n * MIME type of the file being uploaded (e.g., \"video/mp4\").\n *\n * @generated from field: string content_type = 2;\n */\n contentType = \"\";\n\n /**\n * File size in bytes (max 5GB).\n *\n * @generated from field: int64 size_bytes = 3;\n */\n sizeBytes = protoInt64.zero;\n\n /**\n * Optional title for the video.\n *\n * @generated from field: optional string title = 4;\n */\n title?: string;\n\n /**\n * Optional description.\n *\n * @generated from field: optional string description = 5;\n */\n description?: string;\n\n /**\n * Optional tags for categorization (max 20).\n *\n * @generated from field: repeated string tags = 6;\n */\n tags: string[] = [];\n\n /**\n * Visibility setting. Defaults to \"private\" if not specified.\n *\n * @generated from field: optional string visibility = 7;\n */\n visibility?: string;\n\n /**\n * Optional preset reference for the auto-transcode job.\n * Accepts either a preset ID (e.g., \"pst_abc123\") or slug (e.g., \"gaming_1080p_60_standard\").\n * When provided, the preset's settings drive the encoding instead of the\n * app's default auto-profile ABR ladder.\n * The preset must exist and be accessible to the app at CompleteUpload time.\n *\n * @generated from field: optional string preset = 9;\n */\n preset?: string;\n\n constructor(data?: PartialMessage<CreateUploadRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.CreateUploadRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 8, name: \"app_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 1, name: \"filename\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"content_type\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"size_bytes\", kind: \"scalar\", T: 3 /* ScalarType.INT64 */ },\n { no: 4, name: \"title\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 5, name: \"description\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 6, name: \"tags\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n { no: 7, name: \"visibility\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 9, name: \"preset\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CreateUploadRequest {\n return new CreateUploadRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CreateUploadRequest {\n return new CreateUploadRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CreateUploadRequest {\n return new CreateUploadRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: CreateUploadRequest | PlainMessage<CreateUploadRequest> | undefined, b: CreateUploadRequest | PlainMessage<CreateUploadRequest> | undefined): boolean {\n return proto3.util.equals(CreateUploadRequest, a, b);\n }\n}\n\n/**\n * Response from creating an upload.\n *\n * @generated from message transcodely.v1.CreateUploadResponse\n */\nexport class CreateUploadResponse extends Message<CreateUploadResponse> {\n /**\n * The created video (status: \"uploading\").\n *\n * @generated from field: transcodely.v1.Video video = 1;\n */\n video?: Video;\n\n /**\n * Presigned URL for the client to upload the file via HTTP PUT.\n *\n * @generated from field: string upload_url = 2;\n */\n uploadUrl = \"\";\n\n /**\n * When the upload URL expires (typically 1 hour).\n *\n * @generated from field: google.protobuf.Timestamp upload_expires_at = 3;\n */\n uploadExpiresAt?: Timestamp;\n\n constructor(data?: PartialMessage<CreateUploadResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.CreateUploadResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"video\", kind: \"message\", T: Video },\n { no: 2, name: \"upload_url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"upload_expires_at\", kind: \"message\", T: Timestamp },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CreateUploadResponse {\n return new CreateUploadResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CreateUploadResponse {\n return new CreateUploadResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CreateUploadResponse {\n return new CreateUploadResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: CreateUploadResponse | PlainMessage<CreateUploadResponse> | undefined, b: CreateUploadResponse | PlainMessage<CreateUploadResponse> | undefined): boolean {\n return proto3.util.equals(CreateUploadResponse, a, b);\n }\n}\n\n/**\n * Request to signal that a client-side upload has completed.\n *\n * @generated from message transcodely.v1.CompleteUploadRequest\n */\nexport class CompleteUploadRequest extends Message<CompleteUploadRequest> {\n /**\n * Video ID returned from CreateUpload.\n *\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n constructor(data?: PartialMessage<CompleteUploadRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.CompleteUploadRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CompleteUploadRequest {\n return new CompleteUploadRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CompleteUploadRequest {\n return new CompleteUploadRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CompleteUploadRequest {\n return new CompleteUploadRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: CompleteUploadRequest | PlainMessage<CompleteUploadRequest> | undefined, b: CompleteUploadRequest | PlainMessage<CompleteUploadRequest> | undefined): boolean {\n return proto3.util.equals(CompleteUploadRequest, a, b);\n }\n}\n\n/**\n * Response from completing an upload.\n *\n * @generated from message transcodely.v1.CompleteUploadResponse\n */\nexport class CompleteUploadResponse extends Message<CompleteUploadResponse> {\n /**\n * The video (status transitions to \"processing\").\n *\n * @generated from field: transcodely.v1.Video video = 1;\n */\n video?: Video;\n\n constructor(data?: PartialMessage<CompleteUploadResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.CompleteUploadResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"video\", kind: \"message\", T: Video },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CompleteUploadResponse {\n return new CompleteUploadResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CompleteUploadResponse {\n return new CompleteUploadResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CompleteUploadResponse {\n return new CompleteUploadResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: CompleteUploadResponse | PlainMessage<CompleteUploadResponse> | undefined, b: CompleteUploadResponse | PlainMessage<CompleteUploadResponse> | undefined): boolean {\n return proto3.util.equals(CompleteUploadResponse, a, b);\n }\n}\n\n/**\n * A single part in a multipart upload with its presigned URL.\n *\n * @generated from message transcodely.v1.UploadPart\n */\nexport class UploadPart extends Message<UploadPart> {\n /**\n * Part number (1-based).\n *\n * @generated from field: int32 part_number = 1;\n */\n partNumber = 0;\n\n /**\n * Presigned PUT URL for uploading this part.\n *\n * @generated from field: string upload_url = 2;\n */\n uploadUrl = \"\";\n\n constructor(data?: PartialMessage<UploadPart>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.UploadPart\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"part_number\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n { no: 2, name: \"upload_url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): UploadPart {\n return new UploadPart().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): UploadPart {\n return new UploadPart().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): UploadPart {\n return new UploadPart().fromJsonString(jsonString, options);\n }\n\n static equals(a: UploadPart | PlainMessage<UploadPart> | undefined, b: UploadPart | PlainMessage<UploadPart> | undefined): boolean {\n return proto3.util.equals(UploadPart, a, b);\n }\n}\n\n/**\n * A completed part with its ETag from S3.\n *\n * @generated from message transcodely.v1.CompletedPart\n */\nexport class CompletedPart extends Message<CompletedPart> {\n /**\n * Part number (1-based, must match what was uploaded).\n *\n * @generated from field: int32 part_number = 1;\n */\n partNumber = 0;\n\n /**\n * ETag returned by S3 after uploading the part.\n *\n * @generated from field: string etag = 2;\n */\n etag = \"\";\n\n constructor(data?: PartialMessage<CompletedPart>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.CompletedPart\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"part_number\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n { no: 2, name: \"etag\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CompletedPart {\n return new CompletedPart().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CompletedPart {\n return new CompletedPart().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CompletedPart {\n return new CompletedPart().fromJsonString(jsonString, options);\n }\n\n static equals(a: CompletedPart | PlainMessage<CompletedPart> | undefined, b: CompletedPart | PlainMessage<CompletedPart> | undefined): boolean {\n return proto3.util.equals(CompletedPart, a, b);\n }\n}\n\n/**\n * Request to create a multipart upload for large files.\n *\n * @generated from message transcodely.v1.CreateMultipartUploadRequest\n */\nexport class CreateMultipartUploadRequest extends Message<CreateMultipartUploadRequest> {\n /**\n * App to create the video under. Required — must have hosting enabled.\n *\n * @generated from field: string app_id = 1;\n */\n appId = \"\";\n\n /**\n * Original filename (used for content-type detection and display).\n *\n * @generated from field: string filename = 2;\n */\n filename = \"\";\n\n /**\n * MIME type of the file being uploaded (e.g., \"video/mp4\").\n *\n * @generated from field: string content_type = 3;\n */\n contentType = \"\";\n\n /**\n * File size in bytes (max 5GB).\n *\n * @generated from field: int64 size_bytes = 4;\n */\n sizeBytes = protoInt64.zero;\n\n /**\n * Number of parts the file will be split into. Client calculates\n * as ceil(size_bytes / part_size_bytes).\n *\n * @generated from field: int32 total_parts = 5;\n */\n totalParts = 0;\n\n /**\n * Size of each part in bytes. Defaults to 25MB if not specified.\n * Minimum 5MB (except the last part which can be smaller).\n *\n * @generated from field: optional int64 part_size_bytes = 6;\n */\n partSizeBytes?: bigint;\n\n /**\n * Optional title for the video.\n *\n * @generated from field: optional string title = 10;\n */\n title?: string;\n\n /**\n * Optional description.\n *\n * @generated from field: optional string description = 11;\n */\n description?: string;\n\n /**\n * Optional tags for categorization (max 20).\n *\n * @generated from field: repeated string tags = 12;\n */\n tags: string[] = [];\n\n /**\n * Visibility setting. Defaults to \"unlisted\" if not specified.\n *\n * @generated from field: optional string visibility = 13;\n */\n visibility?: string;\n\n /**\n * Optional preset reference for the auto-transcode job.\n *\n * @generated from field: optional string preset = 14;\n */\n preset?: string;\n\n constructor(data?: PartialMessage<CreateMultipartUploadRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.CreateMultipartUploadRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"app_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"filename\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"content_type\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"size_bytes\", kind: \"scalar\", T: 3 /* ScalarType.INT64 */ },\n { no: 5, name: \"total_parts\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n { no: 6, name: \"part_size_bytes\", kind: \"scalar\", T: 3 /* ScalarType.INT64 */, opt: true },\n { no: 10, name: \"title\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 11, name: \"description\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 12, name: \"tags\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n { no: 13, name: \"visibility\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 14, name: \"preset\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CreateMultipartUploadRequest {\n return new CreateMultipartUploadRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CreateMultipartUploadRequest {\n return new CreateMultipartUploadRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CreateMultipartUploadRequest {\n return new CreateMultipartUploadRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: CreateMultipartUploadRequest | PlainMessage<CreateMultipartUploadRequest> | undefined, b: CreateMultipartUploadRequest | PlainMessage<CreateMultipartUploadRequest> | undefined): boolean {\n return proto3.util.equals(CreateMultipartUploadRequest, a, b);\n }\n}\n\n/**\n * Response from creating a multipart upload.\n *\n * @generated from message transcodely.v1.CreateMultipartUploadResponse\n */\nexport class CreateMultipartUploadResponse extends Message<CreateMultipartUploadResponse> {\n /**\n * The created video (status: \"uploading\").\n *\n * @generated from field: transcodely.v1.Video video = 1;\n */\n video?: Video;\n\n /**\n * S3 multipart upload ID. Required for all subsequent part operations.\n *\n * @generated from field: string upload_id = 2;\n */\n uploadId = \"\";\n\n /**\n * Presigned URLs for the first batch of parts (up to 50).\n * Use GetUploadPartUrls to fetch URLs for remaining parts.\n *\n * @generated from field: repeated transcodely.v1.UploadPart parts = 3;\n */\n parts: UploadPart[] = [];\n\n /**\n * When the presigned URLs expire (typically 1 hour).\n *\n * @generated from field: google.protobuf.Timestamp urls_expire_at = 4;\n */\n urlsExpireAt?: Timestamp;\n\n constructor(data?: PartialMessage<CreateMultipartUploadResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.CreateMultipartUploadResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"video\", kind: \"message\", T: Video },\n { no: 2, name: \"upload_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"parts\", kind: \"message\", T: UploadPart, repeated: true },\n { no: 4, name: \"urls_expire_at\", kind: \"message\", T: Timestamp },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CreateMultipartUploadResponse {\n return new CreateMultipartUploadResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CreateMultipartUploadResponse {\n return new CreateMultipartUploadResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CreateMultipartUploadResponse {\n return new CreateMultipartUploadResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: CreateMultipartUploadResponse | PlainMessage<CreateMultipartUploadResponse> | undefined, b: CreateMultipartUploadResponse | PlainMessage<CreateMultipartUploadResponse> | undefined): boolean {\n return proto3.util.equals(CreateMultipartUploadResponse, a, b);\n }\n}\n\n/**\n * Request to get fresh presigned URLs for specific parts.\n *\n * @generated from message transcodely.v1.GetUploadPartUrlsRequest\n */\nexport class GetUploadPartUrlsRequest extends Message<GetUploadPartUrlsRequest> {\n /**\n * Video ID returned from CreateMultipartUpload.\n *\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n /**\n * S3 multipart upload ID from CreateMultipartUpload.\n *\n * @generated from field: string upload_id = 2;\n */\n uploadId = \"\";\n\n /**\n * Part numbers to generate URLs for (1-based, max 100 per request).\n *\n * @generated from field: repeated int32 part_numbers = 3;\n */\n partNumbers: number[] = [];\n\n constructor(data?: PartialMessage<GetUploadPartUrlsRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.GetUploadPartUrlsRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"upload_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"part_numbers\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetUploadPartUrlsRequest {\n return new GetUploadPartUrlsRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetUploadPartUrlsRequest {\n return new GetUploadPartUrlsRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetUploadPartUrlsRequest {\n return new GetUploadPartUrlsRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: GetUploadPartUrlsRequest | PlainMessage<GetUploadPartUrlsRequest> | undefined, b: GetUploadPartUrlsRequest | PlainMessage<GetUploadPartUrlsRequest> | undefined): boolean {\n return proto3.util.equals(GetUploadPartUrlsRequest, a, b);\n }\n}\n\n/**\n * Response with presigned URLs for requested parts.\n *\n * @generated from message transcodely.v1.GetUploadPartUrlsResponse\n */\nexport class GetUploadPartUrlsResponse extends Message<GetUploadPartUrlsResponse> {\n /**\n * Presigned URLs for the requested parts.\n *\n * @generated from field: repeated transcodely.v1.UploadPart parts = 1;\n */\n parts: UploadPart[] = [];\n\n /**\n * When the presigned URLs expire.\n *\n * @generated from field: google.protobuf.Timestamp urls_expire_at = 2;\n */\n urlsExpireAt?: Timestamp;\n\n constructor(data?: PartialMessage<GetUploadPartUrlsResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.GetUploadPartUrlsResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"parts\", kind: \"message\", T: UploadPart, repeated: true },\n { no: 2, name: \"urls_expire_at\", kind: \"message\", T: Timestamp },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetUploadPartUrlsResponse {\n return new GetUploadPartUrlsResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetUploadPartUrlsResponse {\n return new GetUploadPartUrlsResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetUploadPartUrlsResponse {\n return new GetUploadPartUrlsResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: GetUploadPartUrlsResponse | PlainMessage<GetUploadPartUrlsResponse> | undefined, b: GetUploadPartUrlsResponse | PlainMessage<GetUploadPartUrlsResponse> | undefined): boolean {\n return proto3.util.equals(GetUploadPartUrlsResponse, a, b);\n }\n}\n\n/**\n * Request to complete a multipart upload with ETags from all parts.\n *\n * @generated from message transcodely.v1.CompleteMultipartUploadRequest\n */\nexport class CompleteMultipartUploadRequest extends Message<CompleteMultipartUploadRequest> {\n /**\n * Video ID returned from CreateMultipartUpload.\n *\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n /**\n * S3 multipart upload ID from CreateMultipartUpload.\n *\n * @generated from field: string upload_id = 2;\n */\n uploadId = \"\";\n\n /**\n * Completed parts with their ETags (must include all parts).\n *\n * @generated from field: repeated transcodely.v1.CompletedPart parts = 3;\n */\n parts: CompletedPart[] = [];\n\n constructor(data?: PartialMessage<CompleteMultipartUploadRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.CompleteMultipartUploadRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"upload_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"parts\", kind: \"message\", T: CompletedPart, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CompleteMultipartUploadRequest {\n return new CompleteMultipartUploadRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CompleteMultipartUploadRequest {\n return new CompleteMultipartUploadRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CompleteMultipartUploadRequest {\n return new CompleteMultipartUploadRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: CompleteMultipartUploadRequest | PlainMessage<CompleteMultipartUploadRequest> | undefined, b: CompleteMultipartUploadRequest | PlainMessage<CompleteMultipartUploadRequest> | undefined): boolean {\n return proto3.util.equals(CompleteMultipartUploadRequest, a, b);\n }\n}\n\n/**\n * Response from completing a multipart upload.\n *\n * @generated from message transcodely.v1.CompleteMultipartUploadResponse\n */\nexport class CompleteMultipartUploadResponse extends Message<CompleteMultipartUploadResponse> {\n /**\n * The video (status transitions to \"processing\").\n *\n * @generated from field: transcodely.v1.Video video = 1;\n */\n video?: Video;\n\n constructor(data?: PartialMessage<CompleteMultipartUploadResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.CompleteMultipartUploadResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"video\", kind: \"message\", T: Video },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CompleteMultipartUploadResponse {\n return new CompleteMultipartUploadResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CompleteMultipartUploadResponse {\n return new CompleteMultipartUploadResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CompleteMultipartUploadResponse {\n return new CompleteMultipartUploadResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: CompleteMultipartUploadResponse | PlainMessage<CompleteMultipartUploadResponse> | undefined, b: CompleteMultipartUploadResponse | PlainMessage<CompleteMultipartUploadResponse> | undefined): boolean {\n return proto3.util.equals(CompleteMultipartUploadResponse, a, b);\n }\n}\n\n/**\n * Request to abort a multipart upload.\n *\n * @generated from message transcodely.v1.AbortMultipartUploadRequest\n */\nexport class AbortMultipartUploadRequest extends Message<AbortMultipartUploadRequest> {\n /**\n * Video ID returned from CreateMultipartUpload.\n *\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n /**\n * S3 multipart upload ID from CreateMultipartUpload.\n *\n * @generated from field: string upload_id = 2;\n */\n uploadId = \"\";\n\n constructor(data?: PartialMessage<AbortMultipartUploadRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.AbortMultipartUploadRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"upload_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): AbortMultipartUploadRequest {\n return new AbortMultipartUploadRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): AbortMultipartUploadRequest {\n return new AbortMultipartUploadRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): AbortMultipartUploadRequest {\n return new AbortMultipartUploadRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: AbortMultipartUploadRequest | PlainMessage<AbortMultipartUploadRequest> | undefined, b: AbortMultipartUploadRequest | PlainMessage<AbortMultipartUploadRequest> | undefined): boolean {\n return proto3.util.equals(AbortMultipartUploadRequest, a, b);\n }\n}\n\n/**\n * Response from aborting a multipart upload.\n *\n * @generated from message transcodely.v1.AbortMultipartUploadResponse\n */\nexport class AbortMultipartUploadResponse extends Message<AbortMultipartUploadResponse> {\n constructor(data?: PartialMessage<AbortMultipartUploadResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.AbortMultipartUploadResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): AbortMultipartUploadResponse {\n return new AbortMultipartUploadResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): AbortMultipartUploadResponse {\n return new AbortMultipartUploadResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): AbortMultipartUploadResponse {\n return new AbortMultipartUploadResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: AbortMultipartUploadResponse | PlainMessage<AbortMultipartUploadResponse> | undefined, b: AbortMultipartUploadResponse | PlainMessage<AbortMultipartUploadResponse> | undefined): boolean {\n return proto3.util.equals(AbortMultipartUploadResponse, a, b);\n }\n}\n\n/**\n * Request to get a video by ID.\n *\n * @generated from message transcodely.v1.GetVideoRequest\n */\nexport class GetVideoRequest extends Message<GetVideoRequest> {\n /**\n * Video ID.\n *\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n constructor(data?: PartialMessage<GetVideoRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.GetVideoRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetVideoRequest {\n return new GetVideoRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetVideoRequest {\n return new GetVideoRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetVideoRequest {\n return new GetVideoRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: GetVideoRequest | PlainMessage<GetVideoRequest> | undefined, b: GetVideoRequest | PlainMessage<GetVideoRequest> | undefined): boolean {\n return proto3.util.equals(GetVideoRequest, a, b);\n }\n}\n\n/**\n * Response from getting a video.\n *\n * @generated from message transcodely.v1.GetVideoResponse\n */\nexport class GetVideoResponse extends Message<GetVideoResponse> {\n /**\n * The requested video.\n *\n * @generated from field: transcodely.v1.Video video = 1;\n */\n video?: Video;\n\n constructor(data?: PartialMessage<GetVideoResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.GetVideoResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"video\", kind: \"message\", T: Video },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetVideoResponse {\n return new GetVideoResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetVideoResponse {\n return new GetVideoResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetVideoResponse {\n return new GetVideoResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: GetVideoResponse | PlainMessage<GetVideoResponse> | undefined, b: GetVideoResponse | PlainMessage<GetVideoResponse> | undefined): boolean {\n return proto3.util.equals(GetVideoResponse, a, b);\n }\n}\n\n/**\n * Request to list videos.\n *\n * @generated from message transcodely.v1.ListVideosRequest\n */\nexport class ListVideosRequest extends Message<ListVideosRequest> {\n /**\n * Maximum number of videos to return (1-100).\n *\n * @generated from field: int32 page_size = 1;\n */\n pageSize = 0;\n\n /**\n * Pagination token from a previous ListVideosResponse.\n *\n * @generated from field: optional string page_token = 2;\n */\n pageToken?: string;\n\n /**\n * Optional filter by status (e.g., \"ready\", \"processing\").\n *\n * @generated from field: optional string status = 3;\n */\n status?: string;\n\n constructor(data?: PartialMessage<ListVideosRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.ListVideosRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"page_size\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n { no: 2, name: \"page_token\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 3, name: \"status\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListVideosRequest {\n return new ListVideosRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListVideosRequest {\n return new ListVideosRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListVideosRequest {\n return new ListVideosRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: ListVideosRequest | PlainMessage<ListVideosRequest> | undefined, b: ListVideosRequest | PlainMessage<ListVideosRequest> | undefined): boolean {\n return proto3.util.equals(ListVideosRequest, a, b);\n }\n}\n\n/**\n * Response from listing videos.\n *\n * @generated from message transcodely.v1.ListVideosResponse\n */\nexport class ListVideosResponse extends Message<ListVideosResponse> {\n /**\n * List of videos.\n *\n * @generated from field: repeated transcodely.v1.Video videos = 1;\n */\n videos: Video[] = [];\n\n /**\n * Token for fetching the next page. Absent if no more pages.\n *\n * @generated from field: optional string next_page_token = 2;\n */\n nextPageToken?: string;\n\n /**\n * Total number of matching videos.\n *\n * @generated from field: int32 total_count = 3;\n */\n totalCount = 0;\n\n constructor(data?: PartialMessage<ListVideosResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.ListVideosResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"videos\", kind: \"message\", T: Video, repeated: true },\n { no: 2, name: \"next_page_token\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 3, name: \"total_count\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListVideosResponse {\n return new ListVideosResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListVideosResponse {\n return new ListVideosResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListVideosResponse {\n return new ListVideosResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: ListVideosResponse | PlainMessage<ListVideosResponse> | undefined, b: ListVideosResponse | PlainMessage<ListVideosResponse> | undefined): boolean {\n return proto3.util.equals(ListVideosResponse, a, b);\n }\n}\n\n/**\n * Request to update a video's mutable fields.\n *\n * @generated from message transcodely.v1.UpdateVideoRequest\n */\nexport class UpdateVideoRequest extends Message<UpdateVideoRequest> {\n /**\n * Video ID.\n *\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n /**\n * Updated title.\n *\n * @generated from field: optional string title = 2;\n */\n title?: string;\n\n /**\n * Updated description.\n *\n * @generated from field: optional string description = 3;\n */\n description?: string;\n\n /**\n * Updated tags (replaces existing tags).\n *\n * @generated from field: repeated string tags = 4;\n */\n tags: string[] = [];\n\n /**\n * Updated visibility.\n *\n * @generated from field: optional string visibility = 5;\n */\n visibility?: string;\n\n constructor(data?: PartialMessage<UpdateVideoRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.UpdateVideoRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"title\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 3, name: \"description\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 4, name: \"tags\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n { no: 5, name: \"visibility\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): UpdateVideoRequest {\n return new UpdateVideoRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): UpdateVideoRequest {\n return new UpdateVideoRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): UpdateVideoRequest {\n return new UpdateVideoRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: UpdateVideoRequest | PlainMessage<UpdateVideoRequest> | undefined, b: UpdateVideoRequest | PlainMessage<UpdateVideoRequest> | undefined): boolean {\n return proto3.util.equals(UpdateVideoRequest, a, b);\n }\n}\n\n/**\n * Response from updating a video.\n *\n * @generated from message transcodely.v1.UpdateVideoResponse\n */\nexport class UpdateVideoResponse extends Message<UpdateVideoResponse> {\n /**\n * The updated video.\n *\n * @generated from field: transcodely.v1.Video video = 1;\n */\n video?: Video;\n\n constructor(data?: PartialMessage<UpdateVideoResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.UpdateVideoResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"video\", kind: \"message\", T: Video },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): UpdateVideoResponse {\n return new UpdateVideoResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): UpdateVideoResponse {\n return new UpdateVideoResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): UpdateVideoResponse {\n return new UpdateVideoResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: UpdateVideoResponse | PlainMessage<UpdateVideoResponse> | undefined, b: UpdateVideoResponse | PlainMessage<UpdateVideoResponse> | undefined): boolean {\n return proto3.util.equals(UpdateVideoResponse, a, b);\n }\n}\n\n/**\n * Request to delete a video.\n *\n * @generated from message transcodely.v1.DeleteVideoRequest\n */\nexport class DeleteVideoRequest extends Message<DeleteVideoRequest> {\n /**\n * Video ID.\n *\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n constructor(data?: PartialMessage<DeleteVideoRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.DeleteVideoRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): DeleteVideoRequest {\n return new DeleteVideoRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): DeleteVideoRequest {\n return new DeleteVideoRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): DeleteVideoRequest {\n return new DeleteVideoRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: DeleteVideoRequest | PlainMessage<DeleteVideoRequest> | undefined, b: DeleteVideoRequest | PlainMessage<DeleteVideoRequest> | undefined): boolean {\n return proto3.util.equals(DeleteVideoRequest, a, b);\n }\n}\n\n/**\n * Response from deleting a video.\n *\n * @generated from message transcodely.v1.DeleteVideoResponse\n */\nexport class DeleteVideoResponse extends Message<DeleteVideoResponse> {\n constructor(data?: PartialMessage<DeleteVideoResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.DeleteVideoResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): DeleteVideoResponse {\n return new DeleteVideoResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): DeleteVideoResponse {\n return new DeleteVideoResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): DeleteVideoResponse {\n return new DeleteVideoResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: DeleteVideoResponse | PlainMessage<DeleteVideoResponse> | undefined, b: DeleteVideoResponse | PlainMessage<DeleteVideoResponse> | undefined): boolean {\n return proto3.util.equals(DeleteVideoResponse, a, b);\n }\n}\n\n/**\n * Request to watch a video for real-time status updates.\n *\n * @generated from message transcodely.v1.WatchVideoRequest\n */\nexport class WatchVideoRequest extends Message<WatchVideoRequest> {\n /**\n * Video ID to watch.\n *\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n constructor(data?: PartialMessage<WatchVideoRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.WatchVideoRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): WatchVideoRequest {\n return new WatchVideoRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): WatchVideoRequest {\n return new WatchVideoRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): WatchVideoRequest {\n return new WatchVideoRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: WatchVideoRequest | PlainMessage<WatchVideoRequest> | undefined, b: WatchVideoRequest | PlainMessage<WatchVideoRequest> | undefined): boolean {\n return proto3.util.equals(WatchVideoRequest, a, b);\n }\n}\n\n/**\n * Streamed response with video state and event type.\n *\n * @generated from message transcodely.v1.WatchVideoResponse\n */\nexport class WatchVideoResponse extends Message<WatchVideoResponse> {\n /**\n * Current video state.\n *\n * @generated from field: transcodely.v1.Video video = 1;\n */\n video?: Video;\n\n /**\n * Type of event that triggered this update (e.g., \"snapshot\", \"status_change\", \"completed\").\n *\n * @generated from field: string event_type = 2;\n */\n eventType = \"\";\n\n constructor(data?: PartialMessage<WatchVideoResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.WatchVideoResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"video\", kind: \"message\", T: Video },\n { no: 2, name: \"event_type\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): WatchVideoResponse {\n return new WatchVideoResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): WatchVideoResponse {\n return new WatchVideoResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): WatchVideoResponse {\n return new WatchVideoResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: WatchVideoResponse | PlainMessage<WatchVideoResponse> | undefined, b: WatchVideoResponse | PlainMessage<WatchVideoResponse> | undefined): boolean {\n return proto3.util.equals(WatchVideoResponse, a, b);\n }\n}\n\n/**\n * Request to get usage summary for a billing period.\n *\n * @generated from message transcodely.v1.GetUsageRequest\n */\nexport class GetUsageRequest extends Message<GetUsageRequest> {\n /**\n * Billing month in YYYY-MM format (e.g., \"2026-04\").\n * Defaults to the current month if not specified.\n *\n * @generated from field: optional string billing_month = 1;\n */\n billingMonth?: string;\n\n constructor(data?: PartialMessage<GetUsageRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.GetUsageRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"billing_month\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetUsageRequest {\n return new GetUsageRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetUsageRequest {\n return new GetUsageRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetUsageRequest {\n return new GetUsageRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: GetUsageRequest | PlainMessage<GetUsageRequest> | undefined, b: GetUsageRequest | PlainMessage<GetUsageRequest> | undefined): boolean {\n return proto3.util.equals(GetUsageRequest, a, b);\n }\n}\n\n/**\n * Response with usage summary.\n *\n * @generated from message transcodely.v1.GetUsageResponse\n */\nexport class GetUsageResponse extends Message<GetUsageResponse> {\n /**\n * Usage breakdown for the requested period.\n *\n * @generated from field: transcodely.v1.UsageSummary usage = 1;\n */\n usage?: UsageSummary;\n\n constructor(data?: PartialMessage<GetUsageResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.GetUsageResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"usage\", kind: \"message\", T: UsageSummary },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetUsageResponse {\n return new GetUsageResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetUsageResponse {\n return new GetUsageResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetUsageResponse {\n return new GetUsageResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: GetUsageResponse | PlainMessage<GetUsageResponse> | undefined, b: GetUsageResponse | PlainMessage<GetUsageResponse> | undefined): boolean {\n return proto3.util.equals(GetUsageResponse, a, b);\n }\n}\n\n/**\n * Aggregated usage and cost summary for a billing period.\n *\n * @generated from message transcodely.v1.UsageSummary\n */\nexport class UsageSummary extends Message<UsageSummary> {\n /**\n * Billing month in YYYY-MM format.\n *\n * @generated from field: string billing_month = 1;\n */\n billingMonth = \"\";\n\n /**\n * Encoding metrics.\n *\n * @generated from field: int32 videos_encoded = 2;\n */\n videosEncoded = 0;\n\n /**\n * @generated from field: double encoding_minutes = 3;\n */\n encodingMinutes = 0;\n\n /**\n * @generated from field: double encoding_cost = 4;\n */\n encodingCost = 0;\n\n /**\n * Storage metrics.\n *\n * @generated from field: double storage_gb_avg = 10;\n */\n storageGbAvg = 0;\n\n /**\n * @generated from field: double storage_cost = 11;\n */\n storageCost = 0;\n\n /**\n * @generated from field: int32 videos_hosted = 12;\n */\n videosHosted = 0;\n\n /**\n * Egress metrics.\n *\n * @generated from field: double egress_gb = 20;\n */\n egressGb = 0;\n\n /**\n * @generated from field: double egress_cost = 21;\n */\n egressCost = 0;\n\n /**\n * @generated from field: int64 total_requests = 22;\n */\n totalRequests = protoInt64.zero;\n\n /**\n * Total cost across all categories.\n *\n * @generated from field: double total_cost = 30;\n */\n totalCost = 0;\n\n constructor(data?: PartialMessage<UsageSummary>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.UsageSummary\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"billing_month\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"videos_encoded\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n { no: 3, name: \"encoding_minutes\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */ },\n { no: 4, name: \"encoding_cost\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */ },\n { no: 10, name: \"storage_gb_avg\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */ },\n { no: 11, name: \"storage_cost\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */ },\n { no: 12, name: \"videos_hosted\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n { no: 20, name: \"egress_gb\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */ },\n { no: 21, name: \"egress_cost\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */ },\n { no: 22, name: \"total_requests\", kind: \"scalar\", T: 3 /* ScalarType.INT64 */ },\n { no: 30, name: \"total_cost\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): UsageSummary {\n return new UsageSummary().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): UsageSummary {\n return new UsageSummary().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): UsageSummary {\n return new UsageSummary().fromJsonString(jsonString, options);\n }\n\n static equals(a: UsageSummary | PlainMessage<UsageSummary> | undefined, b: UsageSummary | PlainMessage<UsageSummary> | undefined): boolean {\n return proto3.util.equals(UsageSummary, a, b);\n }\n}\n\n","/**\n * Public types for the webhook surface — the discriminated union customers\n * narrow on, and the resource decoder table shared between the verify\n * helper and the `client.events` resource bridge.\n */\n\nimport type { JsonValue } from \"@bufbuild/protobuf\";\n\nimport { fromJson } from \"../codec/json.js\";\nimport { App } from \"../gen/transcodely/v1/app_pb.js\";\nimport { Job, JobOutput } from \"../gen/transcodely/v1/job_pb.js\";\nimport { Video } from \"../gen/transcodely/v1/video_pb.js\";\n\n/** Fields common to every webhook event, regardless of `type`. */\nexport interface EventBase {\n /** `evt_*` ID. */\n id: string;\n /** Discriminator. Always `\"event\"`. */\n object: \"event\";\n /** API version at emit time (e.g. `\"2026-05-23\"`). Frozen for the event's lifetime. */\n apiVersion: string;\n /** RFC 3339 UTC timestamp of when the event was created. */\n created: string;\n /** `true` for production-mode events. Reserved for a future test-mode concept. */\n livemode: boolean;\n /** Number of delivery attempts still pending across all subscribed endpoints. */\n pendingWebhooks: number;\n /** Originating API request, if known. */\n request: { id: string; idempotencyKey: string | null };\n}\n\n/**\n * Every event the platform may emit, discriminated by `type`. The final\n * `string` arm is intentional forward-compat: an older SDK receiving a\n * `type` the API has since added still parses; `data` is left as the raw\n * decoded JSON object and customers should handle it in a `default:` arm.\n */\nexport type WebhookEvent =\n | (EventBase & { type: \"job.created\"; data: Job })\n | (EventBase & { type: \"job.succeeded\"; data: Job })\n | (EventBase & { type: \"job.failed\"; data: Job })\n | (EventBase & { type: \"job.canceled\"; data: Job })\n | (EventBase & { type: \"job.progress\"; data: Job })\n | (EventBase & { type: \"output.created\"; data: JobOutput })\n | (EventBase & { type: \"output.ready\"; data: JobOutput })\n | (EventBase & { type: \"output.failed\"; data: JobOutput })\n | (EventBase & { type: \"output.progress\"; data: JobOutput })\n | (EventBase & { type: \"video.uploaded\"; data: Video })\n | (EventBase & { type: \"video.deleted\"; data: Video })\n | (EventBase & { type: \"app.created\"; data: App })\n | (EventBase & { type: \"app.updated\"; data: App })\n | (EventBase & { type: string; data: unknown });\n\n/**\n * The 13 concrete webhook event types the API can emit. Mirrors the source of\n * truth in `domain.WebhookEventTypes()` (api/internal/domain/webhook.go). The\n * `\"*\"` wildcard is a subscription-only value and is intentionally absent.\n *\n * Exported so consumers can validate `enabledEvents` lists and so the\n * catalog-drift regression test can compare this set against the discriminated\n * union literals above.\n */\nexport const WEBHOOK_EVENT_TYPES = [\n \"job.created\",\n \"job.succeeded\",\n \"job.failed\",\n \"job.canceled\",\n \"job.progress\",\n \"output.created\",\n \"output.ready\",\n \"output.failed\",\n \"output.progress\",\n \"video.uploaded\",\n \"video.deleted\",\n \"app.created\",\n \"app.updated\",\n] as const;\n\n/** A concrete event type the API can emit (excludes the `\"*\"` wildcard). */\nexport type WebhookEventType = (typeof WEBHOOK_EVENT_TYPES)[number];\n\n/** A resource decoder for a given event-type prefix. */\ninterface DecoderEntry {\n prefix: string;\n decode: (json: unknown) => Job | JobOutput | Video | App;\n}\n\n/**\n * Event-type prefix → MessageType decoder. Shared by `constructEvent`\n * (verify path, JSON arrives pre-parsed) and the `events` resource bridge\n * (API-Event path, JSON arrives as a string field on the proto Event).\n *\n * Each decoder goes through the codec's `fromJson`, NOT the raw\n * `MessageType.fromJson`. This is load-bearing: the server emits the inner\n * resource with simplified lowercase enum values (e.g. \"completed\"), and the\n * codec's `fromJson` runs the enum-expansion transform first. The raw\n * `MessageType.fromJson` with `ignoreUnknownFields` would silently zero every\n * enum field to UNSPECIFIED instead — see the enum regression tests.\n *\n * The `output.` entry must precede no other entry — prefixes are disjoint\n * today, so order is informational, but keep `output.` first to make the\n * intent explicit.\n */\nexport const RESOURCE_DECODERS: readonly DecoderEntry[] = [\n { prefix: \"output.\", decode: (json) => fromJson(json as JsonValue, JobOutput) },\n { prefix: \"job.\", decode: (json) => fromJson(json as JsonValue, Job) },\n { prefix: \"video.\", decode: (json) => fromJson(json as JsonValue, Video) },\n { prefix: \"app.\", decode: (json) => fromJson(json as JsonValue, App) },\n];\n\n/** Look up a decoder by event type, or `undefined` if the type is unknown. */\nexport function decoderForType(type: string): DecoderEntry[\"decode\"] | undefined {\n for (const entry of RESOURCE_DECODERS) {\n if (type.startsWith(entry.prefix)) return entry.decode;\n }\n return undefined;\n}\n","import type { PartialMessage } from \"@bufbuild/protobuf\";\n\nimport { PaginationRequest } from \"../gen/transcodely/v1/common_pb.js\";\nimport { WebhookService } from \"../gen/transcodely/v1/webhook_connect.js\";\nimport {\n type Event as APIEvent,\n ListEventsRequest,\n ResendEventRequest,\n RetrieveEventRequest,\n type WebhookDelivery,\n} from \"../gen/transcodely/v1/webhook_pb.js\";\nimport { Page } from \"../pagination.js\";\nimport type { CallOptions, Transport } from \"../transport/transport.js\";\nimport { decoderForType, type WebhookEvent } from \"../webhooks/types.js\";\n\n/**\n * Query and replay events. Each event the SDK hands back is the same\n * unified {@link WebhookEvent} shape that `client.webhooks.constructEvent`\n * produces — so a `job.succeeded` handler can be tested against an event\n * pulled from `client.events.retrieve(...)` and behave identically.\n *\n * The bridge from the proto-shape `Event` (which carries the inner\n * resource as a JSON string) to the SDK-shape `WebhookEvent` lives in\n * {@link protoEventToSdk}.\n */\nexport class Events {\n constructor(private readonly transport: Transport) {}\n\n async retrieve(id: string, opts?: CallOptions): Promise<WebhookEvent> {\n const res = await this.transport.unary(\n WebhookService,\n WebhookService.methods.retrieveEvent,\n new RetrieveEventRequest({ id }),\n opts,\n );\n return protoEventToSdk(res.event!);\n }\n\n list(req: PartialMessage<ListEventsRequest>, opts?: CallOptions): Page<WebhookEvent> {\n return new Page<WebhookEvent>(async (cursor) => {\n const proto = new ListEventsRequest(req);\n if (cursor !== undefined) {\n proto.pagination = new PaginationRequest({\n ...(req.pagination ?? {}),\n cursor,\n });\n }\n const res = await this.transport.unary(\n WebhookService,\n WebhookService.methods.listEvents,\n proto,\n opts,\n );\n return {\n items: res.events.map(protoEventToSdk),\n nextCursor: res.pagination?.nextCursor || undefined,\n };\n });\n }\n\n /**\n * Resend an existing event. Creates new pending delivery records — one\n * per target endpoint — which the delivery worker picks up immediately.\n * If `endpointIds` is omitted, resends to every currently-subscribed\n * enabled endpoint.\n */\n async resend(\n id: string,\n opts: { endpointIds?: string[] } & CallOptions = {},\n ): Promise<WebhookDelivery[]> {\n const { endpointIds, ...callOpts } = opts;\n const res = await this.transport.unary(\n WebhookService,\n WebhookService.methods.resendEvent,\n new ResendEventRequest({ id, endpointIds }),\n callOpts,\n );\n return res.deliveries;\n }\n}\n\n/**\n * Bridge: proto `Event` (`data: string`, `request_id: string`, `created_at:\n * Timestamp`) → SDK `WebhookEvent` (`data: Job|Video|App|…`, `request: {id,\n * idempotencyKey}`, `created: string`). Used by `retrieve` and `list`.\n *\n * Exported for the facade tests; not re-exported from the package root.\n */\nexport function protoEventToSdk(proto: APIEvent): WebhookEvent {\n let parsedData: unknown = {};\n if (proto.data) {\n try {\n parsedData = JSON.parse(proto.data);\n } catch {\n // Server-controlled; if it ever fails leave the placeholder so the\n // event still surfaces (the consumer can inspect proto.data via the\n // raw APIEvent type if they need to debug a malformed payload).\n }\n }\n const decode = decoderForType(proto.type);\n const data = decode && parsedData && typeof parsedData === \"object\" ? decode(parsedData) : parsedData;\n\n return {\n id: proto.id,\n object: \"event\",\n apiVersion: proto.apiVersion,\n created: proto.createdAt ? proto.createdAt.toDate().toISOString() : \"\",\n type: proto.type,\n data,\n livemode: proto.livemode,\n pendingWebhooks: proto.pendingWebhooks,\n // proto Event carries only `request_id`; `idempotency_key` is always\n // null until JobService.Create propagates it (out-of-scope feature).\n request: { id: proto.requestId ?? \"\", idempotencyKey: null },\n } as WebhookEvent;\n}\n","// Health check service.\n\n// @generated by protoc-gen-es v1.10.0 with parameter \"target=ts,import_extension=.js\"\n// @generated from file transcodely/v1/health.proto (package transcodely.v1, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from \"@bufbuild/protobuf\";\nimport { Message, proto3 } from \"@bufbuild/protobuf\";\n\n/**\n * Health status.\n *\n * @generated from enum transcodely.v1.HealthStatus\n */\nexport enum HealthStatus {\n /**\n * @generated from enum value: HEALTH_STATUS_UNSPECIFIED = 0;\n */\n UNSPECIFIED = 0,\n\n /**\n * Service is healthy and operational.\n *\n * @generated from enum value: HEALTH_STATUS_HEALTHY = 1;\n */\n HEALTHY = 1,\n\n /**\n * Service is degraded but operational.\n *\n * @generated from enum value: HEALTH_STATUS_DEGRADED = 2;\n */\n DEGRADED = 2,\n\n /**\n * Service is unhealthy and not operational.\n *\n * @generated from enum value: HEALTH_STATUS_UNHEALTHY = 3;\n */\n UNHEALTHY = 3,\n}\n// Retrieve enum metadata with: proto3.getEnumType(HealthStatus)\nproto3.util.setEnumType(HealthStatus, \"transcodely.v1.HealthStatus\", [\n { no: 0, name: \"HEALTH_STATUS_UNSPECIFIED\" },\n { no: 1, name: \"HEALTH_STATUS_HEALTHY\" },\n { no: 2, name: \"HEALTH_STATUS_DEGRADED\" },\n { no: 3, name: \"HEALTH_STATUS_UNHEALTHY\" },\n]);\n\n/**\n * Request for health check.\n *\n * @generated from message transcodely.v1.HealthCheckRequest\n */\nexport class HealthCheckRequest extends Message<HealthCheckRequest> {\n /**\n * Optional: specific service to check (empty = all).\n *\n * @generated from field: optional string service = 1;\n */\n service?: string;\n\n constructor(data?: PartialMessage<HealthCheckRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.HealthCheckRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"service\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): HealthCheckRequest {\n return new HealthCheckRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): HealthCheckRequest {\n return new HealthCheckRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): HealthCheckRequest {\n return new HealthCheckRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: HealthCheckRequest | PlainMessage<HealthCheckRequest> | undefined, b: HealthCheckRequest | PlainMessage<HealthCheckRequest> | undefined): boolean {\n return proto3.util.equals(HealthCheckRequest, a, b);\n }\n}\n\n/**\n * Response from health check.\n *\n * @generated from message transcodely.v1.HealthCheckResponse\n */\nexport class HealthCheckResponse extends Message<HealthCheckResponse> {\n /**\n * Overall service status.\n *\n * @generated from field: transcodely.v1.HealthStatus status = 1;\n */\n status = HealthStatus.UNSPECIFIED;\n\n /**\n * Service version.\n *\n * @generated from field: string version = 2;\n */\n version = \"\";\n\n /**\n * Individual component statuses.\n *\n * @generated from field: repeated transcodely.v1.ComponentHealth components = 3;\n */\n components: ComponentHealth[] = [];\n\n constructor(data?: PartialMessage<HealthCheckResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.HealthCheckResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"status\", kind: \"enum\", T: proto3.getEnumType(HealthStatus) },\n { no: 2, name: \"version\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"components\", kind: \"message\", T: ComponentHealth, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): HealthCheckResponse {\n return new HealthCheckResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): HealthCheckResponse {\n return new HealthCheckResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): HealthCheckResponse {\n return new HealthCheckResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: HealthCheckResponse | PlainMessage<HealthCheckResponse> | undefined, b: HealthCheckResponse | PlainMessage<HealthCheckResponse> | undefined): boolean {\n return proto3.util.equals(HealthCheckResponse, a, b);\n }\n}\n\n/**\n * Health status of an individual component.\n *\n * @generated from message transcodely.v1.ComponentHealth\n */\nexport class ComponentHealth extends Message<ComponentHealth> {\n /**\n * Component name (e.g., \"database\", \"storage\", \"queue\").\n *\n * @generated from field: string name = 1;\n */\n name = \"\";\n\n /**\n * Component status.\n *\n * @generated from field: transcodely.v1.HealthStatus status = 2;\n */\n status = HealthStatus.UNSPECIFIED;\n\n /**\n * Optional message with additional details.\n *\n * @generated from field: optional string message = 3;\n */\n message?: string;\n\n constructor(data?: PartialMessage<ComponentHealth>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.ComponentHealth\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"status\", kind: \"enum\", T: proto3.getEnumType(HealthStatus) },\n { no: 3, name: \"message\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ComponentHealth {\n return new ComponentHealth().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ComponentHealth {\n return new ComponentHealth().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ComponentHealth {\n return new ComponentHealth().fromJsonString(jsonString, options);\n }\n\n static equals(a: ComponentHealth | PlainMessage<ComponentHealth> | undefined, b: ComponentHealth | PlainMessage<ComponentHealth> | undefined): boolean {\n return proto3.util.equals(ComponentHealth, a, b);\n }\n}\n\n","// Health check service.\n\n// @generated by protoc-gen-connect-es v1.6.1 with parameter \"target=ts,import_extension=.js\"\n// @generated from file transcodely/v1/health.proto (package transcodely.v1, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport { HealthCheckRequest, HealthCheckResponse } from \"./health_pb.js\";\nimport { MethodKind } from \"@bufbuild/protobuf\";\n\n/**\n * HealthService provides health check endpoints.\n *\n * @generated from service transcodely.v1.HealthService\n */\nexport const HealthService = {\n typeName: \"transcodely.v1.HealthService\",\n methods: {\n /**\n * Check the health of the service.\n *\n * @generated from rpc transcodely.v1.HealthService.Check\n */\n check: {\n name: \"Check\",\n I: HealthCheckRequest,\n O: HealthCheckResponse,\n kind: MethodKind.Unary,\n },\n }\n} as const;\n\n","import { HealthService } from \"../gen/transcodely/v1/health_connect.js\";\nimport { HealthCheckRequest } from \"../gen/transcodely/v1/health_pb.js\";\n\nimport type { CallOptions, Transport } from \"../transport/transport.js\";\n\nexport class Health {\n constructor(private readonly transport: Transport) {}\n\n check(opts?: CallOptions) {\n return this.transport.unary(\n HealthService,\n HealthService.methods.check,\n new HealthCheckRequest(),\n opts,\n );\n }\n}\n","// Job service for video transcoding operations.\n\n// @generated by protoc-gen-connect-es v1.6.1 with parameter \"target=ts,import_extension=.js\"\n// @generated from file transcodely/v1/job.proto (package transcodely.v1, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport { CancelJobRequest, CancelJobResponse, ConfirmJobRequest, ConfirmJobResponse, CreateJobRequest, CreateJobResponse, GetJobRequest, GetJobResponse, ListJobsRequest, ListJobsResponse, WatchJobRequest, WatchJobResponse } from \"./job_pb.js\";\nimport { MethodKind } from \"@bufbuild/protobuf\";\n\n/**\n * JobService handles video transcoding job operations.\n *\n * @generated from service transcodely.v1.JobService\n */\nexport const JobService = {\n typeName: \"transcodely.v1.JobService\",\n methods: {\n /**\n * Create a new transcoding job with one or more output renditions.\n *\n * @generated from rpc transcodely.v1.JobService.Create\n */\n create: {\n name: \"Create\",\n I: CreateJobRequest,\n O: CreateJobResponse,\n kind: MethodKind.Unary,\n },\n /**\n * Get a job by ID.\n *\n * @generated from rpc transcodely.v1.JobService.Get\n */\n get: {\n name: \"Get\",\n I: GetJobRequest,\n O: GetJobResponse,\n kind: MethodKind.Unary,\n },\n /**\n * List jobs with optional filtering.\n *\n * @generated from rpc transcodely.v1.JobService.List\n */\n list: {\n name: \"List\",\n I: ListJobsRequest,\n O: ListJobsResponse,\n kind: MethodKind.Unary,\n },\n /**\n * Cancel a pending or running job.\n *\n * @generated from rpc transcodely.v1.JobService.Cancel\n */\n cancel: {\n name: \"Cancel\",\n I: CancelJobRequest,\n O: CancelJobResponse,\n kind: MethodKind.Unary,\n },\n /**\n * Confirm a job that is awaiting confirmation (delayed start jobs only).\n * This starts the encoding process after the customer has reviewed the estimated cost.\n *\n * @generated from rpc transcodely.v1.JobService.Confirm\n */\n confirm: {\n name: \"Confirm\",\n I: ConfirmJobRequest,\n O: ConfirmJobResponse,\n kind: MethodKind.Unary,\n },\n /**\n * Watch a job for real-time updates. Streams the current state immediately,\n * then pushes updates whenever status or progress changes.\n * Stream closes automatically when the job reaches a terminal state.\n *\n * @generated from rpc transcodely.v1.JobService.Watch\n */\n watch: {\n name: \"Watch\",\n I: WatchJobRequest,\n O: WatchJobResponse,\n kind: MethodKind.ServerStreaming,\n },\n }\n} as const;\n\n","/**\n * Error hierarchy for the Transcodely SDK. All errors thrown by SDK methods\n * inherit from {@link TranscodelyError}, so a single `catch` block plus\n * `instanceof` checks is enough for typed handling.\n *\n * @example\n * ```ts\n * try {\n * await client.jobs.create(params);\n * } catch (err) {\n * if (err instanceof InvalidRequestError) {\n * for (const violation of err.errors) {\n * console.warn(`${violation.field}: ${violation.description}`);\n * }\n * } else if (err instanceof RateLimitError) {\n * await sleep(err.retryAfterMs ?? 1000);\n * } else {\n * throw err;\n * }\n * }\n * ```\n */\n\nexport interface FieldViolation {\n field: string;\n description: string;\n}\n\nexport interface ErrorPayload {\n /** Stripe-style top-level error type, e.g. \"validation_error\". */\n type?: string;\n /** Server-side machine-readable code, e.g. \"JOB_NOT_FOUND\". */\n code?: string;\n /** Human-readable explanation. */\n message?: string;\n /** Field-level validation errors (for InvalidRequestError). */\n errors?: FieldViolation[];\n}\n\nexport interface TranscodelyErrorOptions {\n message: string;\n code?: string;\n type?: string;\n errors?: FieldViolation[];\n httpStatus?: number;\n requestId?: string;\n raw?: unknown;\n cause?: unknown;\n}\n\n/** Base class for every error the SDK throws. */\nexport class TranscodelyError extends Error {\n /** Server-side error code (e.g. \"JOB_NOT_FOUND\"). */\n readonly code: string | undefined;\n /** Top-level error type (e.g. \"validation_error\"). */\n readonly type: string | undefined;\n /** Field-level validation violations. */\n readonly errors: FieldViolation[];\n /** HTTP status code, if any. */\n readonly httpStatus: number | undefined;\n /** `req_*` ID returned by the server in `X-Request-Id`, if any. */\n readonly requestId: string | undefined;\n /** Raw response body or original error object. */\n readonly raw: unknown;\n\n constructor(opts: TranscodelyErrorOptions) {\n super(opts.message, opts.cause ? { cause: opts.cause } : undefined);\n this.name = new.target.name;\n this.code = opts.code;\n this.type = opts.type;\n this.errors = opts.errors ?? [];\n this.httpStatus = opts.httpStatus;\n this.requestId = opts.requestId;\n this.raw = opts.raw;\n }\n}\n\n/** Network failure: DNS, TLS, connection refused, no HTTP response. */\nexport class APIConnectionError extends TranscodelyError {}\n\n/** Server-side internal error (5xx). */\nexport class APIError extends TranscodelyError {}\n\n/** 401 — invalid, missing, revoked, or expired API key. */\nexport class AuthenticationError extends TranscodelyError {}\n\n/** 403 — authenticated but lacking permission for the requested resource. */\nexport class PermissionError extends TranscodelyError {}\n\n/** 404 — entity not found. */\nexport class NotFoundError extends TranscodelyError {}\n\n/** 409 — already exists, idempotency conflict, slug taken. */\nexport class ConflictError extends TranscodelyError {}\n\n/** 429 — rate-limited. {@link retryAfterMs} reflects the `Retry-After` header. */\nexport class RateLimitError extends TranscodelyError {\n readonly retryAfterMs: number | undefined;\n constructor(opts: TranscodelyErrorOptions & { retryAfterMs?: number }) {\n super(opts);\n this.retryAfterMs = opts.retryAfterMs;\n }\n}\n\n/** 400 / 422 — request body or parameters were invalid. */\nexport class InvalidRequestError extends TranscodelyError {}\n\n/** 412 — preconditions not met (e.g. job not cancelable in current state). */\nexport class PreconditionError extends TranscodelyError {}\n\n/**\n * Base class for errors thrown by {@link Webhooks.constructEvent}. Unlike the\n * other SDK errors, these originate locally — the SDK never made a network\n * call when these fire — so `httpStatus` and `requestId` are always\n * undefined.\n */\nexport class WebhookError extends TranscodelyError {\n constructor(message: string, opts: { cause?: unknown } = {}) {\n super({ message, cause: opts.cause });\n }\n}\n\n/** Signature header was missing/malformed or no `v1=` entry matched the computed HMAC. */\nexport class WebhookSignatureError extends WebhookError {}\n\n/** Signature timestamp is outside the tolerance window (default 300 s). */\nexport class WebhookTimestampError extends WebhookError {}\n\n/** Body was valid JSON but did not match the expected event envelope shape. */\nexport class WebhookPayloadError extends WebhookError {}\n","/**\n * Server-streaming wrapper. Yields events one at a time, transparently\n * filters HEARTBEAT events unless the caller opts in, and reconnects on\n * transient network failures (Watch RPCs are idempotent — every reconnect\n * starts with a SNAPSHOT event).\n */\n\nimport { APIConnectionError } from \"./errors.js\";\n\nexport interface WatchOptions<T> {\n /** Yield HEARTBEAT events instead of filtering them out. Default: false. */\n includeHeartbeats?: boolean;\n /** Predicate identifying a HEARTBEAT event in this stream's event type. */\n isHeartbeat?: (event: T) => boolean;\n /** Maximum reconnect attempts on transient failures. Default: 5. */\n maxReconnects?: number;\n /** Cancel the watch by aborting this signal. */\n signal?: AbortSignal;\n}\n\nexport type WatchFactory<T> = (signal: AbortSignal) => AsyncIterable<T>;\n\n/**\n * Wrap a raw stream factory with reconnect + heartbeat-filtering semantics.\n * The factory is called once per connection; if it throws an\n * `APIConnectionError` we re-invoke it with backoff, up to `maxReconnects`.\n */\nexport async function* watch<T>(\n factory: WatchFactory<T>,\n opts: WatchOptions<T> = {},\n): AsyncIterable<T> {\n const max = opts.maxReconnects ?? 5;\n const isHeartbeat = opts.isHeartbeat;\n let attempt = 0;\n while (true) {\n const ac = new AbortController();\n const onAbort = () => ac.abort(opts.signal!.reason);\n if (opts.signal) {\n if (opts.signal.aborted) ac.abort(opts.signal.reason);\n else opts.signal.addEventListener(\"abort\", onAbort);\n }\n try {\n for await (const event of factory(ac.signal)) {\n if (!opts.includeHeartbeats && isHeartbeat && isHeartbeat(event)) continue;\n yield event;\n }\n return;\n } catch (err) {\n if (opts.signal?.aborted) throw err;\n if (!(err instanceof APIConnectionError)) throw err;\n attempt++;\n if (attempt > max) throw err;\n await backoff(attempt);\n } finally {\n if (opts.signal) opts.signal.removeEventListener(\"abort\", onAbort);\n }\n }\n}\n\nfunction backoff(attempt: number): Promise<void> {\n const base = 500;\n const cap = 5000;\n const expo = Math.min(cap, base * 2 ** (attempt - 1));\n const jittered = expo * (0.5 + Math.random() * 0.5);\n return new Promise((resolve) => setTimeout(resolve, jittered));\n}\n","/** SDK version. Bumped by release-please from package.json on each tag. */\nexport const SDK_VERSION = \"0.1.2\"; // x-release-please-version\n\n/**\n * API version this SDK release is pinned to. Sent on every request as\n * `Transcodely-Version`. Customers can override per-client via the\n * `apiVersion` config option.\n */\nexport const API_VERSION = \"2026-05-03\";\n\n/** Default base URL for the production Transcodely API. */\nexport const DEFAULT_BASE_URL = \"https://api.transcodely.com\";\n","import { SDK_VERSION } from \"../version.js\";\n\nconst PLATFORM = (() => {\n if (typeof process !== \"undefined\" && process.versions?.node) {\n return `Node.js ${process.version} ${process.platform} ${process.arch}`;\n }\n if (typeof navigator !== \"undefined\") {\n return `Browser ${navigator.userAgent}`;\n }\n return \"unknown\";\n})();\n\nconst LANG_VERSION = (() => {\n if (typeof process !== \"undefined\" && process.versions?.node) {\n return process.versions.node;\n }\n return \"browser\";\n})();\n\nexport function userAgent(): string {\n if (typeof process !== \"undefined\" && process.versions?.node) {\n return `Transcodely/${SDK_VERSION} typescript Node/${process.versions.node}`;\n }\n return `Transcodely/${SDK_VERSION} typescript browser`;\n}\n\nexport function clientUserAgentJson(): string {\n return JSON.stringify({\n lang: \"typescript\",\n lang_version: LANG_VERSION,\n platform: PLATFORM,\n publisher: \"transcodely\",\n version: SDK_VERSION,\n });\n}\n\n/** Best-effort UUID v4. Falls back to a random hex string if `crypto` is absent. */\nexport function uuidv4(): string {\n if (typeof crypto !== \"undefined\" && typeof crypto.randomUUID === \"function\") {\n return crypto.randomUUID();\n }\n const bytes = new Uint8Array(16);\n if (typeof crypto !== \"undefined\" && typeof crypto.getRandomValues === \"function\") {\n crypto.getRandomValues(bytes);\n } else {\n for (let i = 0; i < 16; i++) bytes[i] = Math.floor(Math.random() * 256);\n }\n bytes[6] = (bytes[6]! & 0x0f) | 0x40;\n bytes[8] = (bytes[8]! & 0x3f) | 0x80;\n const h: string[] = [];\n for (let i = 0; i < 16; i++) h.push(bytes[i]!.toString(16).padStart(2, \"0\"));\n return `${h.slice(0, 4).join(\"\")}-${h.slice(4, 6).join(\"\")}-${h.slice(6, 8).join(\"\")}-${h.slice(8, 10).join(\"\")}-${h.slice(10, 16).join(\"\")}`;\n}\n","import type { PartialMessage } from \"@bufbuild/protobuf\";\n\nimport { JobService } from \"../gen/transcodely/v1/job_connect.js\";\nimport {\n CancelJobRequest,\n ConfirmJobRequest,\n CreateJobRequest,\n GetJobRequest,\n type Job,\n ListJobsRequest,\n WatchEventType,\n type WatchJobResponse,\n WatchJobRequest,\n} from \"../gen/transcodely/v1/job_pb.js\";\nimport { PaginationRequest } from \"../gen/transcodely/v1/common_pb.js\";\n\nimport { Page } from \"../pagination.js\";\nimport { watch } from \"../streaming.js\";\nimport type { CallOptions, Transport } from \"../transport/transport.js\";\nimport { uuidv4 } from \"../transport/headers.js\";\n\nexport class Jobs {\n constructor(private readonly transport: Transport) {}\n\n /** Create a new transcoding job. The SDK auto-generates an idempotency key\n * if you don't pass one. */\n async create(\n req: PartialMessage<CreateJobRequest>,\n opts: CallOptions = {},\n ): Promise<Job> {\n const proto = new CreateJobRequest(req);\n if (!proto.idempotencyKey) {\n proto.idempotencyKey = opts.idempotencyKey ?? uuidv4();\n }\n const res = await this.transport.unary(\n JobService,\n JobService.methods.create,\n proto,\n opts,\n );\n return res.job!;\n }\n\n /** Fetch a job by ID. */\n async get(id: string, opts?: CallOptions): Promise<Job> {\n const res = await this.transport.unary(\n JobService,\n JobService.methods.get,\n new GetJobRequest({ id }),\n opts,\n );\n return res.job!;\n }\n\n /** List jobs. Returns a `Page` — `await` it for one page or `.autoPage()` to iterate all. */\n list(req: PartialMessage<ListJobsRequest> = {}, opts?: CallOptions): Page<Job> {\n return new Page<Job>(async (cursor) => {\n const proto = new ListJobsRequest(req);\n if (cursor !== undefined) {\n proto.pagination = new PaginationRequest({\n ...(req.pagination ?? {}),\n cursor,\n });\n }\n const res = await this.transport.unary(\n JobService,\n JobService.methods.list,\n proto,\n opts,\n );\n return { items: res.jobs, nextCursor: res.pagination?.nextCursor || undefined };\n });\n }\n\n /** Cancel a pending or running job. */\n async cancel(id: string, opts?: CallOptions): Promise<Job> {\n const res = await this.transport.unary(\n JobService,\n JobService.methods.cancel,\n new CancelJobRequest({ id }),\n opts,\n );\n return res.job!;\n }\n\n /** Confirm a delayed-start job that's awaiting confirmation. */\n async confirm(id: string, opts?: CallOptions): Promise<Job> {\n const res = await this.transport.unary(\n JobService,\n JobService.methods.confirm,\n new ConfirmJobRequest({ id }),\n opts,\n );\n return res.job!;\n }\n\n /** Stream live updates for a job. Auto-reconnects on transient failures and\n * filters HEARTBEAT events; stream ends when the job hits a terminal state. */\n watch(\n id: string,\n opts: { signal?: AbortSignal; includeHeartbeats?: boolean } = {},\n ): AsyncIterable<WatchJobResponse> {\n return watch<WatchJobResponse>(\n (signal) =>\n this.transport.stream(\n JobService,\n JobService.methods.watch,\n new WatchJobRequest({ id }),\n { signal },\n ),\n {\n includeHeartbeats: opts.includeHeartbeats,\n signal: opts.signal,\n isHeartbeat: (event) => event.event === WatchEventType.HEARTBEAT,\n },\n );\n }\n}\n","// Membership service for managing organization memberships.\n\n// @generated by protoc-gen-es v1.10.0 with parameter \"target=ts,import_extension=.js\"\n// @generated from file transcodely/v1/membership.proto (package transcodely.v1, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from \"@bufbuild/protobuf\";\nimport { Message, proto3, Timestamp } from \"@bufbuild/protobuf\";\nimport { PaginationRequest, PaginationResponse } from \"./common_pb.js\";\n\n/**\n * Role of a user in an organization.\n *\n * @generated from enum transcodely.v1.MembershipRole\n */\nexport enum MembershipRole {\n /**\n * Default value, should not be used.\n *\n * @generated from enum value: MEMBERSHIP_ROLE_UNSPECIFIED = 0;\n */\n UNSPECIFIED = 0,\n\n /**\n * Full access, can manage billing and delete organization.\n *\n * @generated from enum value: MEMBERSHIP_ROLE_OWNER = 1;\n */\n OWNER = 1,\n\n /**\n * Can manage members and resources.\n *\n * @generated from enum value: MEMBERSHIP_ROLE_ADMIN = 2;\n */\n ADMIN = 2,\n\n /**\n * Can manage resources (jobs, presets, origins).\n *\n * @generated from enum value: MEMBERSHIP_ROLE_MEMBER = 3;\n */\n MEMBER = 3,\n\n /**\n * Read-only access.\n *\n * @generated from enum value: MEMBERSHIP_ROLE_VIEWER = 4;\n */\n VIEWER = 4,\n}\n// Retrieve enum metadata with: proto3.getEnumType(MembershipRole)\nproto3.util.setEnumType(MembershipRole, \"transcodely.v1.MembershipRole\", [\n { no: 0, name: \"MEMBERSHIP_ROLE_UNSPECIFIED\" },\n { no: 1, name: \"MEMBERSHIP_ROLE_OWNER\" },\n { no: 2, name: \"MEMBERSHIP_ROLE_ADMIN\" },\n { no: 3, name: \"MEMBERSHIP_ROLE_MEMBER\" },\n { no: 4, name: \"MEMBERSHIP_ROLE_VIEWER\" },\n]);\n\n/**\n * Status of a membership.\n *\n * @generated from enum transcodely.v1.MembershipStatus\n */\nexport enum MembershipStatus {\n /**\n * Default value, should not be used.\n *\n * @generated from enum value: MEMBERSHIP_STATUS_UNSPECIFIED = 0;\n */\n UNSPECIFIED = 0,\n\n /**\n * User has access to the organization.\n *\n * @generated from enum value: MEMBERSHIP_STATUS_ACTIVE = 1;\n */\n ACTIVE = 1,\n\n /**\n * Invitation sent, not yet accepted.\n *\n * @generated from enum value: MEMBERSHIP_STATUS_INVITED = 2;\n */\n INVITED = 2,\n\n /**\n * Access temporarily revoked.\n *\n * @generated from enum value: MEMBERSHIP_STATUS_SUSPENDED = 3;\n */\n SUSPENDED = 3,\n}\n// Retrieve enum metadata with: proto3.getEnumType(MembershipStatus)\nproto3.util.setEnumType(MembershipStatus, \"transcodely.v1.MembershipStatus\", [\n { no: 0, name: \"MEMBERSHIP_STATUS_UNSPECIFIED\" },\n { no: 1, name: \"MEMBERSHIP_STATUS_ACTIVE\" },\n { no: 2, name: \"MEMBERSHIP_STATUS_INVITED\" },\n { no: 3, name: \"MEMBERSHIP_STATUS_SUSPENDED\" },\n]);\n\n/**\n * A user's membership in an organization.\n *\n * @generated from message transcodely.v1.Membership\n */\nexport class Membership extends Message<Membership> {\n /**\n * Unique membership identifier (e.g., \"mem_a1b2c3d4e5\").\n *\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n /**\n * User ID.\n *\n * @generated from field: string user_id = 2;\n */\n userId = \"\";\n\n /**\n * Organization ID.\n *\n * @generated from field: string org_id = 3;\n */\n orgId = \"\";\n\n /**\n * Role in the organization.\n *\n * @generated from field: transcodely.v1.MembershipRole role = 4;\n */\n role = MembershipRole.UNSPECIFIED;\n\n /**\n * Membership status.\n *\n * @generated from field: transcodely.v1.MembershipStatus status = 5;\n */\n status = MembershipStatus.UNSPECIFIED;\n\n /**\n * Who invited this user (if applicable).\n *\n * @generated from field: optional string invited_by = 6;\n */\n invitedBy?: string;\n\n /**\n * When the invitation was sent.\n *\n * @generated from field: optional google.protobuf.Timestamp invited_at = 7;\n */\n invitedAt?: Timestamp;\n\n /**\n * When the invitation was accepted.\n *\n * @generated from field: optional google.protobuf.Timestamp accepted_at = 8;\n */\n acceptedAt?: Timestamp;\n\n /**\n * When the membership was created.\n *\n * @generated from field: google.protobuf.Timestamp created_at = 9;\n */\n createdAt?: Timestamp;\n\n /**\n * When the membership was last updated.\n *\n * @generated from field: google.protobuf.Timestamp updated_at = 10;\n */\n updatedAt?: Timestamp;\n\n constructor(data?: PartialMessage<Membership>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.Membership\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"user_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"org_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"role\", kind: \"enum\", T: proto3.getEnumType(MembershipRole) },\n { no: 5, name: \"status\", kind: \"enum\", T: proto3.getEnumType(MembershipStatus) },\n { no: 6, name: \"invited_by\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 7, name: \"invited_at\", kind: \"message\", T: Timestamp, opt: true },\n { no: 8, name: \"accepted_at\", kind: \"message\", T: Timestamp, opt: true },\n { no: 9, name: \"created_at\", kind: \"message\", T: Timestamp },\n { no: 10, name: \"updated_at\", kind: \"message\", T: Timestamp },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): Membership {\n return new Membership().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): Membership {\n return new Membership().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): Membership {\n return new Membership().fromJsonString(jsonString, options);\n }\n\n static equals(a: Membership | PlainMessage<Membership> | undefined, b: Membership | PlainMessage<Membership> | undefined): boolean {\n return proto3.util.equals(Membership, a, b);\n }\n}\n\n/**\n * Membership with user details (for listing members).\n *\n * @generated from message transcodely.v1.MembershipWithUser\n */\nexport class MembershipWithUser extends Message<MembershipWithUser> {\n /**\n * The membership.\n *\n * @generated from field: transcodely.v1.Membership membership = 1;\n */\n membership?: Membership;\n\n /**\n * User's email.\n *\n * @generated from field: string user_email = 2;\n */\n userEmail = \"\";\n\n /**\n * User's display name.\n *\n * @generated from field: string user_name = 3;\n */\n userName = \"\";\n\n /**\n * Whether the user account is active.\n *\n * @generated from field: bool user_is_active = 4;\n */\n userIsActive = false;\n\n constructor(data?: PartialMessage<MembershipWithUser>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.MembershipWithUser\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"membership\", kind: \"message\", T: Membership },\n { no: 2, name: \"user_email\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"user_name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"user_is_active\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): MembershipWithUser {\n return new MembershipWithUser().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): MembershipWithUser {\n return new MembershipWithUser().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): MembershipWithUser {\n return new MembershipWithUser().fromJsonString(jsonString, options);\n }\n\n static equals(a: MembershipWithUser | PlainMessage<MembershipWithUser> | undefined, b: MembershipWithUser | PlainMessage<MembershipWithUser> | undefined): boolean {\n return proto3.util.equals(MembershipWithUser, a, b);\n }\n}\n\n/**\n * Request to list organization members.\n *\n * @generated from message transcodely.v1.ListMembershipsRequest\n */\nexport class ListMembershipsRequest extends Message<ListMembershipsRequest> {\n /**\n * Filter by status.\n *\n * @generated from field: optional transcodely.v1.MembershipStatus status = 1;\n */\n status?: MembershipStatus;\n\n /**\n * Pagination parameters.\n *\n * @generated from field: transcodely.v1.PaginationRequest pagination = 2;\n */\n pagination?: PaginationRequest;\n\n constructor(data?: PartialMessage<ListMembershipsRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.ListMembershipsRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"status\", kind: \"enum\", T: proto3.getEnumType(MembershipStatus), opt: true },\n { no: 2, name: \"pagination\", kind: \"message\", T: PaginationRequest },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListMembershipsRequest {\n return new ListMembershipsRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListMembershipsRequest {\n return new ListMembershipsRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListMembershipsRequest {\n return new ListMembershipsRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: ListMembershipsRequest | PlainMessage<ListMembershipsRequest> | undefined, b: ListMembershipsRequest | PlainMessage<ListMembershipsRequest> | undefined): boolean {\n return proto3.util.equals(ListMembershipsRequest, a, b);\n }\n}\n\n/**\n * Response from listing memberships.\n *\n * @generated from message transcodely.v1.ListMembershipsResponse\n */\nexport class ListMembershipsResponse extends Message<ListMembershipsResponse> {\n /**\n * List of memberships with user details.\n *\n * @generated from field: repeated transcodely.v1.MembershipWithUser memberships = 1;\n */\n memberships: MembershipWithUser[] = [];\n\n /**\n * Pagination metadata.\n *\n * @generated from field: transcodely.v1.PaginationResponse pagination = 2;\n */\n pagination?: PaginationResponse;\n\n constructor(data?: PartialMessage<ListMembershipsResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.ListMembershipsResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"memberships\", kind: \"message\", T: MembershipWithUser, repeated: true },\n { no: 2, name: \"pagination\", kind: \"message\", T: PaginationResponse },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListMembershipsResponse {\n return new ListMembershipsResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListMembershipsResponse {\n return new ListMembershipsResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListMembershipsResponse {\n return new ListMembershipsResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: ListMembershipsResponse | PlainMessage<ListMembershipsResponse> | undefined, b: ListMembershipsResponse | PlainMessage<ListMembershipsResponse> | undefined): boolean {\n return proto3.util.equals(ListMembershipsResponse, a, b);\n }\n}\n\n/**\n * Request to get a membership.\n *\n * @generated from message transcodely.v1.GetMembershipRequest\n */\nexport class GetMembershipRequest extends Message<GetMembershipRequest> {\n /**\n * Membership ID.\n *\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n constructor(data?: PartialMessage<GetMembershipRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.GetMembershipRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetMembershipRequest {\n return new GetMembershipRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetMembershipRequest {\n return new GetMembershipRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetMembershipRequest {\n return new GetMembershipRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: GetMembershipRequest | PlainMessage<GetMembershipRequest> | undefined, b: GetMembershipRequest | PlainMessage<GetMembershipRequest> | undefined): boolean {\n return proto3.util.equals(GetMembershipRequest, a, b);\n }\n}\n\n/**\n * Response from getting a membership.\n *\n * @generated from message transcodely.v1.GetMembershipResponse\n */\nexport class GetMembershipResponse extends Message<GetMembershipResponse> {\n /**\n * The requested membership with user details.\n *\n * @generated from field: transcodely.v1.MembershipWithUser membership = 1;\n */\n membership?: MembershipWithUser;\n\n constructor(data?: PartialMessage<GetMembershipResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.GetMembershipResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"membership\", kind: \"message\", T: MembershipWithUser },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetMembershipResponse {\n return new GetMembershipResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetMembershipResponse {\n return new GetMembershipResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetMembershipResponse {\n return new GetMembershipResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: GetMembershipResponse | PlainMessage<GetMembershipResponse> | undefined, b: GetMembershipResponse | PlainMessage<GetMembershipResponse> | undefined): boolean {\n return proto3.util.equals(GetMembershipResponse, a, b);\n }\n}\n\n/**\n * Request to update a member's role.\n *\n * @generated from message transcodely.v1.UpdateMembershipRoleRequest\n */\nexport class UpdateMembershipRoleRequest extends Message<UpdateMembershipRoleRequest> {\n /**\n * Membership ID.\n *\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n /**\n * New role.\n *\n * @generated from field: transcodely.v1.MembershipRole role = 2;\n */\n role = MembershipRole.UNSPECIFIED;\n\n constructor(data?: PartialMessage<UpdateMembershipRoleRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.UpdateMembershipRoleRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"role\", kind: \"enum\", T: proto3.getEnumType(MembershipRole) },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): UpdateMembershipRoleRequest {\n return new UpdateMembershipRoleRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): UpdateMembershipRoleRequest {\n return new UpdateMembershipRoleRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): UpdateMembershipRoleRequest {\n return new UpdateMembershipRoleRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: UpdateMembershipRoleRequest | PlainMessage<UpdateMembershipRoleRequest> | undefined, b: UpdateMembershipRoleRequest | PlainMessage<UpdateMembershipRoleRequest> | undefined): boolean {\n return proto3.util.equals(UpdateMembershipRoleRequest, a, b);\n }\n}\n\n/**\n * Response from updating a membership role.\n *\n * @generated from message transcodely.v1.UpdateMembershipRoleResponse\n */\nexport class UpdateMembershipRoleResponse extends Message<UpdateMembershipRoleResponse> {\n /**\n * The updated membership.\n *\n * @generated from field: transcodely.v1.Membership membership = 1;\n */\n membership?: Membership;\n\n constructor(data?: PartialMessage<UpdateMembershipRoleResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.UpdateMembershipRoleResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"membership\", kind: \"message\", T: Membership },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): UpdateMembershipRoleResponse {\n return new UpdateMembershipRoleResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): UpdateMembershipRoleResponse {\n return new UpdateMembershipRoleResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): UpdateMembershipRoleResponse {\n return new UpdateMembershipRoleResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: UpdateMembershipRoleResponse | PlainMessage<UpdateMembershipRoleResponse> | undefined, b: UpdateMembershipRoleResponse | PlainMessage<UpdateMembershipRoleResponse> | undefined): boolean {\n return proto3.util.equals(UpdateMembershipRoleResponse, a, b);\n }\n}\n\n/**\n * Request to remove a member.\n *\n * @generated from message transcodely.v1.RemoveMembershipRequest\n */\nexport class RemoveMembershipRequest extends Message<RemoveMembershipRequest> {\n /**\n * Membership ID.\n *\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n constructor(data?: PartialMessage<RemoveMembershipRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.RemoveMembershipRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): RemoveMembershipRequest {\n return new RemoveMembershipRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): RemoveMembershipRequest {\n return new RemoveMembershipRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): RemoveMembershipRequest {\n return new RemoveMembershipRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: RemoveMembershipRequest | PlainMessage<RemoveMembershipRequest> | undefined, b: RemoveMembershipRequest | PlainMessage<RemoveMembershipRequest> | undefined): boolean {\n return proto3.util.equals(RemoveMembershipRequest, a, b);\n }\n}\n\n/**\n * Response from removing a member.\n *\n * Empty response on success.\n *\n * @generated from message transcodely.v1.RemoveMembershipResponse\n */\nexport class RemoveMembershipResponse extends Message<RemoveMembershipResponse> {\n constructor(data?: PartialMessage<RemoveMembershipResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.RemoveMembershipResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): RemoveMembershipResponse {\n return new RemoveMembershipResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): RemoveMembershipResponse {\n return new RemoveMembershipResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): RemoveMembershipResponse {\n return new RemoveMembershipResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: RemoveMembershipResponse | PlainMessage<RemoveMembershipResponse> | undefined, b: RemoveMembershipResponse | PlainMessage<RemoveMembershipResponse> | undefined): boolean {\n return proto3.util.equals(RemoveMembershipResponse, a, b);\n }\n}\n\n","// Membership service for managing organization memberships.\n\n// @generated by protoc-gen-connect-es v1.6.1 with parameter \"target=ts,import_extension=.js\"\n// @generated from file transcodely/v1/membership.proto (package transcodely.v1, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport { GetMembershipRequest, GetMembershipResponse, ListMembershipsRequest, ListMembershipsResponse, RemoveMembershipRequest, RemoveMembershipResponse, UpdateMembershipRoleRequest, UpdateMembershipRoleResponse } from \"./membership_pb.js\";\nimport { MethodKind } from \"@bufbuild/protobuf\";\n\n/**\n * MembershipService manages organization memberships.\n * Requires X-Organization-ID header for all methods.\n *\n * @generated from service transcodely.v1.MembershipService\n */\nexport const MembershipService = {\n typeName: \"transcodely.v1.MembershipService\",\n methods: {\n /**\n * List members of an organization.\n * Requires viewer permission on the organization.\n *\n * @generated from rpc transcodely.v1.MembershipService.List\n */\n list: {\n name: \"List\",\n I: ListMembershipsRequest,\n O: ListMembershipsResponse,\n kind: MethodKind.Unary,\n },\n /**\n * Get a specific membership.\n * Requires viewer permission on the organization.\n *\n * @generated from rpc transcodely.v1.MembershipService.Get\n */\n get: {\n name: \"Get\",\n I: GetMembershipRequest,\n O: GetMembershipResponse,\n kind: MethodKind.Unary,\n },\n /**\n * Update a member's role.\n * Requires admin permission on the organization.\n * Cannot demote the last owner.\n *\n * @generated from rpc transcodely.v1.MembershipService.UpdateRole\n */\n updateRole: {\n name: \"UpdateRole\",\n I: UpdateMembershipRoleRequest,\n O: UpdateMembershipRoleResponse,\n kind: MethodKind.Unary,\n },\n /**\n * Remove a member from the organization.\n * Requires admin permission on the organization.\n * Cannot remove the last owner.\n *\n * @generated from rpc transcodely.v1.MembershipService.Remove\n */\n remove: {\n name: \"Remove\",\n I: RemoveMembershipRequest,\n O: RemoveMembershipResponse,\n kind: MethodKind.Unary,\n },\n }\n} as const;\n\n","import type { PartialMessage } from \"@bufbuild/protobuf\";\n\nimport { MembershipService } from \"../gen/transcodely/v1/membership_connect.js\";\nimport {\n GetMembershipRequest,\n ListMembershipsRequest,\n type Membership,\n type MembershipWithUser,\n RemoveMembershipRequest,\n UpdateMembershipRoleRequest,\n} from \"../gen/transcodely/v1/membership_pb.js\";\nimport { PaginationRequest } from \"../gen/transcodely/v1/common_pb.js\";\n\nimport { Page } from \"../pagination.js\";\nimport type { CallOptions, Transport } from \"../transport/transport.js\";\n\nexport class Memberships {\n constructor(private readonly transport: Transport) {}\n\n list(\n req: PartialMessage<ListMembershipsRequest> = {},\n opts?: CallOptions,\n ): Page<MembershipWithUser> {\n return new Page<MembershipWithUser>(async (cursor) => {\n const proto = new ListMembershipsRequest(req);\n if (cursor !== undefined) {\n proto.pagination = new PaginationRequest({\n ...(req.pagination ?? {}),\n cursor,\n });\n }\n const res = await this.transport.unary(\n MembershipService,\n MembershipService.methods.list,\n proto,\n opts,\n );\n return { items: res.memberships, nextCursor: res.pagination?.nextCursor || undefined };\n });\n }\n\n async get(id: string, opts?: CallOptions): Promise<MembershipWithUser> {\n const res = await this.transport.unary(\n MembershipService,\n MembershipService.methods.get,\n new GetMembershipRequest({ id }),\n opts,\n );\n return res.membership!;\n }\n\n async updateRole(\n req: PartialMessage<UpdateMembershipRoleRequest>,\n opts?: CallOptions,\n ): Promise<Membership> {\n const res = await this.transport.unary(\n MembershipService,\n MembershipService.methods.updateRole,\n new UpdateMembershipRoleRequest(req),\n opts,\n );\n return res.membership!;\n }\n\n async remove(id: string, opts?: CallOptions): Promise<void> {\n await this.transport.unary(\n MembershipService,\n MembershipService.methods.remove,\n new RemoveMembershipRequest({ id }),\n opts,\n );\n }\n}\n","// Organization service for managing billing entities.\n\n// @generated by protoc-gen-es v1.10.0 with parameter \"target=ts,import_extension=.js\"\n// @generated from file transcodely/v1/organization.proto (package transcodely.v1, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from \"@bufbuild/protobuf\";\nimport { Message, proto3, Timestamp } from \"@bufbuild/protobuf\";\nimport { PaginationRequest, PaginationResponse } from \"./common_pb.js\";\n\n/**\n * Organization status.\n *\n * @generated from enum transcodely.v1.OrganizationStatus\n */\nexport enum OrganizationStatus {\n /**\n * Default value, should not be used.\n *\n * @generated from enum value: ORGANIZATION_STATUS_UNSPECIFIED = 0;\n */\n UNSPECIFIED = 0,\n\n /**\n * Normal operation.\n *\n * @generated from enum value: ORGANIZATION_STATUS_ACTIVE = 1;\n */\n ACTIVE = 1,\n\n /**\n * Blocked due to billing issue or admin action.\n * API requests return 403.\n *\n * @generated from enum value: ORGANIZATION_STATUS_SUSPENDED = 2;\n */\n SUSPENDED = 2,\n\n /**\n * Soft-deleted. No access allowed.\n *\n * @generated from enum value: ORGANIZATION_STATUS_DELETED = 3;\n */\n DELETED = 3,\n}\n// Retrieve enum metadata with: proto3.getEnumType(OrganizationStatus)\nproto3.util.setEnumType(OrganizationStatus, \"transcodely.v1.OrganizationStatus\", [\n { no: 0, name: \"ORGANIZATION_STATUS_UNSPECIFIED\" },\n { no: 1, name: \"ORGANIZATION_STATUS_ACTIVE\" },\n { no: 2, name: \"ORGANIZATION_STATUS_SUSPENDED\" },\n { no: 3, name: \"ORGANIZATION_STATUS_DELETED\" },\n]);\n\n/**\n * An organization is a billing entity that contains apps and users.\n *\n * @generated from message transcodely.v1.Organization\n */\nexport class Organization extends Message<Organization> {\n /**\n * Unique organization identifier (e.g., \"org_a1b2c3d4e5\").\n *\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n /**\n * URL-safe slug (lowercase, immutable after creation).\n * Example: \"acme-corp\"\n *\n * @generated from field: string slug = 2;\n */\n slug = \"\";\n\n /**\n * Human-friendly display name (editable).\n * Example: \"Acme Corporation\"\n *\n * @generated from field: string display_name = 3;\n */\n displayName = \"\";\n\n /**\n * Email for billing notifications.\n *\n * @generated from field: optional string billing_email = 4;\n */\n billingEmail?: string;\n\n /**\n * ISO 4217 currency code for billing.\n * Default: \"EUR\"\n *\n * @generated from field: string currency = 5;\n */\n currency = \"\";\n\n /**\n * Organization status.\n *\n * @generated from field: transcodely.v1.OrganizationStatus status = 6;\n */\n status = OrganizationStatus.UNSPECIFIED;\n\n /**\n * When the organization was created.\n *\n * @generated from field: google.protobuf.Timestamp created_at = 7;\n */\n createdAt?: Timestamp;\n\n /**\n * When the organization was last updated.\n *\n * @generated from field: google.protobuf.Timestamp updated_at = 8;\n */\n updatedAt?: Timestamp;\n\n constructor(data?: PartialMessage<Organization>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.Organization\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"slug\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"display_name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"billing_email\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 5, name: \"currency\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 6, name: \"status\", kind: \"enum\", T: proto3.getEnumType(OrganizationStatus) },\n { no: 7, name: \"created_at\", kind: \"message\", T: Timestamp },\n { no: 8, name: \"updated_at\", kind: \"message\", T: Timestamp },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): Organization {\n return new Organization().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): Organization {\n return new Organization().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): Organization {\n return new Organization().fromJsonString(jsonString, options);\n }\n\n static equals(a: Organization | PlainMessage<Organization> | undefined, b: Organization | PlainMessage<Organization> | undefined): boolean {\n return proto3.util.equals(Organization, a, b);\n }\n}\n\n/**\n * Request to check if a slug is available.\n *\n * @generated from message transcodely.v1.CheckSlugRequest\n */\nexport class CheckSlugRequest extends Message<CheckSlugRequest> {\n /**\n * The slug to check.\n * Will be normalized to lowercase.\n *\n * @generated from field: string slug = 1;\n */\n slug = \"\";\n\n constructor(data?: PartialMessage<CheckSlugRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.CheckSlugRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"slug\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CheckSlugRequest {\n return new CheckSlugRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CheckSlugRequest {\n return new CheckSlugRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CheckSlugRequest {\n return new CheckSlugRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: CheckSlugRequest | PlainMessage<CheckSlugRequest> | undefined, b: CheckSlugRequest | PlainMessage<CheckSlugRequest> | undefined): boolean {\n return proto3.util.equals(CheckSlugRequest, a, b);\n }\n}\n\n/**\n * Response from checking a slug.\n *\n * @generated from message transcodely.v1.CheckSlugResponse\n */\nexport class CheckSlugResponse extends Message<CheckSlugResponse> {\n /**\n * Whether the slug is available.\n *\n * @generated from field: bool available = 1;\n */\n available = false;\n\n /**\n * The normalized version of the slug.\n *\n * @generated from field: string normalized_slug = 2;\n */\n normalizedSlug = \"\";\n\n /**\n * If not available, the reason why.\n * Values: \"taken\", \"reserved\", \"invalid_format\"\n *\n * @generated from field: optional string reason = 3;\n */\n reason?: string;\n\n /**\n * Human-readable message about the slug.\n *\n * @generated from field: string message = 4;\n */\n message = \"\";\n\n constructor(data?: PartialMessage<CheckSlugResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.CheckSlugResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"available\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 2, name: \"normalized_slug\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"reason\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 4, name: \"message\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CheckSlugResponse {\n return new CheckSlugResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CheckSlugResponse {\n return new CheckSlugResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CheckSlugResponse {\n return new CheckSlugResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: CheckSlugResponse | PlainMessage<CheckSlugResponse> | undefined, b: CheckSlugResponse | PlainMessage<CheckSlugResponse> | undefined): boolean {\n return proto3.util.equals(CheckSlugResponse, a, b);\n }\n}\n\n/**\n * Request to create a new organization.\n *\n * @generated from message transcodely.v1.CreateOrganizationRequest\n */\nexport class CreateOrganizationRequest extends Message<CreateOrganizationRequest> {\n /**\n * URL-safe slug (lowercase, 3-50 characters).\n * Must start with a letter, contain only lowercase letters, numbers, and hyphens.\n * Cannot contain consecutive hyphens or end with a hyphen.\n *\n * @generated from field: string slug = 1;\n */\n slug = \"\";\n\n /**\n * Human-friendly display name.\n *\n * @generated from field: string display_name = 2;\n */\n displayName = \"\";\n\n /**\n * Optional billing email.\n *\n * @generated from field: optional string billing_email = 3;\n */\n billingEmail?: string;\n\n /**\n * ISO 4217 currency code for billing.\n * Default: \"EUR\" if not specified.\n *\n * @generated from field: optional string currency = 4;\n */\n currency?: string;\n\n constructor(data?: PartialMessage<CreateOrganizationRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.CreateOrganizationRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"slug\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"display_name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"billing_email\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 4, name: \"currency\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CreateOrganizationRequest {\n return new CreateOrganizationRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CreateOrganizationRequest {\n return new CreateOrganizationRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CreateOrganizationRequest {\n return new CreateOrganizationRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: CreateOrganizationRequest | PlainMessage<CreateOrganizationRequest> | undefined, b: CreateOrganizationRequest | PlainMessage<CreateOrganizationRequest> | undefined): boolean {\n return proto3.util.equals(CreateOrganizationRequest, a, b);\n }\n}\n\n/**\n * Response from creating an organization.\n *\n * @generated from message transcodely.v1.CreateOrganizationResponse\n */\nexport class CreateOrganizationResponse extends Message<CreateOrganizationResponse> {\n /**\n * The created organization.\n *\n * @generated from field: transcodely.v1.Organization organization = 1;\n */\n organization?: Organization;\n\n constructor(data?: PartialMessage<CreateOrganizationResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.CreateOrganizationResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"organization\", kind: \"message\", T: Organization },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CreateOrganizationResponse {\n return new CreateOrganizationResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CreateOrganizationResponse {\n return new CreateOrganizationResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CreateOrganizationResponse {\n return new CreateOrganizationResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: CreateOrganizationResponse | PlainMessage<CreateOrganizationResponse> | undefined, b: CreateOrganizationResponse | PlainMessage<CreateOrganizationResponse> | undefined): boolean {\n return proto3.util.equals(CreateOrganizationResponse, a, b);\n }\n}\n\n/**\n * Request to get an organization.\n *\n * @generated from message transcodely.v1.GetOrganizationRequest\n */\nexport class GetOrganizationRequest extends Message<GetOrganizationRequest> {\n /**\n * Organization ID or slug.\n * If starts with \"org_\", treated as ID. Otherwise treated as slug.\n *\n * @generated from field: string id_or_slug = 1;\n */\n idOrSlug = \"\";\n\n constructor(data?: PartialMessage<GetOrganizationRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.GetOrganizationRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id_or_slug\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetOrganizationRequest {\n return new GetOrganizationRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetOrganizationRequest {\n return new GetOrganizationRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetOrganizationRequest {\n return new GetOrganizationRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: GetOrganizationRequest | PlainMessage<GetOrganizationRequest> | undefined, b: GetOrganizationRequest | PlainMessage<GetOrganizationRequest> | undefined): boolean {\n return proto3.util.equals(GetOrganizationRequest, a, b);\n }\n}\n\n/**\n * Response from getting an organization.\n *\n * @generated from message transcodely.v1.GetOrganizationResponse\n */\nexport class GetOrganizationResponse extends Message<GetOrganizationResponse> {\n /**\n * The requested organization.\n *\n * @generated from field: transcodely.v1.Organization organization = 1;\n */\n organization?: Organization;\n\n constructor(data?: PartialMessage<GetOrganizationResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.GetOrganizationResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"organization\", kind: \"message\", T: Organization },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetOrganizationResponse {\n return new GetOrganizationResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetOrganizationResponse {\n return new GetOrganizationResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetOrganizationResponse {\n return new GetOrganizationResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: GetOrganizationResponse | PlainMessage<GetOrganizationResponse> | undefined, b: GetOrganizationResponse | PlainMessage<GetOrganizationResponse> | undefined): boolean {\n return proto3.util.equals(GetOrganizationResponse, a, b);\n }\n}\n\n/**\n * Request to update an organization.\n *\n * @generated from message transcodely.v1.UpdateOrganizationRequest\n */\nexport class UpdateOrganizationRequest extends Message<UpdateOrganizationRequest> {\n /**\n * Organization ID.\n *\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n /**\n * New display name (if provided).\n *\n * @generated from field: optional string display_name = 2;\n */\n displayName?: string;\n\n /**\n * New billing email (if provided).\n *\n * @generated from field: optional string billing_email = 3;\n */\n billingEmail?: string;\n\n constructor(data?: PartialMessage<UpdateOrganizationRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.UpdateOrganizationRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"display_name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 3, name: \"billing_email\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): UpdateOrganizationRequest {\n return new UpdateOrganizationRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): UpdateOrganizationRequest {\n return new UpdateOrganizationRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): UpdateOrganizationRequest {\n return new UpdateOrganizationRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: UpdateOrganizationRequest | PlainMessage<UpdateOrganizationRequest> | undefined, b: UpdateOrganizationRequest | PlainMessage<UpdateOrganizationRequest> | undefined): boolean {\n return proto3.util.equals(UpdateOrganizationRequest, a, b);\n }\n}\n\n/**\n * Response from updating an organization.\n *\n * @generated from message transcodely.v1.UpdateOrganizationResponse\n */\nexport class UpdateOrganizationResponse extends Message<UpdateOrganizationResponse> {\n /**\n * The updated organization.\n *\n * @generated from field: transcodely.v1.Organization organization = 1;\n */\n organization?: Organization;\n\n constructor(data?: PartialMessage<UpdateOrganizationResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.UpdateOrganizationResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"organization\", kind: \"message\", T: Organization },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): UpdateOrganizationResponse {\n return new UpdateOrganizationResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): UpdateOrganizationResponse {\n return new UpdateOrganizationResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): UpdateOrganizationResponse {\n return new UpdateOrganizationResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: UpdateOrganizationResponse | PlainMessage<UpdateOrganizationResponse> | undefined, b: UpdateOrganizationResponse | PlainMessage<UpdateOrganizationResponse> | undefined): boolean {\n return proto3.util.equals(UpdateOrganizationResponse, a, b);\n }\n}\n\n/**\n * Request to list organizations.\n *\n * @generated from message transcodely.v1.ListOrganizationsRequest\n */\nexport class ListOrganizationsRequest extends Message<ListOrganizationsRequest> {\n /**\n * Pagination parameters.\n *\n * @generated from field: transcodely.v1.PaginationRequest pagination = 1;\n */\n pagination?: PaginationRequest;\n\n /**\n * If true, include suspended and deleted organizations.\n *\n * @generated from field: bool include_inactive = 2;\n */\n includeInactive = false;\n\n constructor(data?: PartialMessage<ListOrganizationsRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.ListOrganizationsRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"pagination\", kind: \"message\", T: PaginationRequest },\n { no: 2, name: \"include_inactive\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListOrganizationsRequest {\n return new ListOrganizationsRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListOrganizationsRequest {\n return new ListOrganizationsRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListOrganizationsRequest {\n return new ListOrganizationsRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: ListOrganizationsRequest | PlainMessage<ListOrganizationsRequest> | undefined, b: ListOrganizationsRequest | PlainMessage<ListOrganizationsRequest> | undefined): boolean {\n return proto3.util.equals(ListOrganizationsRequest, a, b);\n }\n}\n\n/**\n * Response from listing organizations.\n *\n * @generated from message transcodely.v1.ListOrganizationsResponse\n */\nexport class ListOrganizationsResponse extends Message<ListOrganizationsResponse> {\n /**\n * List of organizations.\n *\n * @generated from field: repeated transcodely.v1.Organization organizations = 1;\n */\n organizations: Organization[] = [];\n\n /**\n * Pagination metadata.\n *\n * @generated from field: transcodely.v1.PaginationResponse pagination = 2;\n */\n pagination?: PaginationResponse;\n\n constructor(data?: PartialMessage<ListOrganizationsResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.ListOrganizationsResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"organizations\", kind: \"message\", T: Organization, repeated: true },\n { no: 2, name: \"pagination\", kind: \"message\", T: PaginationResponse },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListOrganizationsResponse {\n return new ListOrganizationsResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListOrganizationsResponse {\n return new ListOrganizationsResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListOrganizationsResponse {\n return new ListOrganizationsResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: ListOrganizationsResponse | PlainMessage<ListOrganizationsResponse> | undefined, b: ListOrganizationsResponse | PlainMessage<ListOrganizationsResponse> | undefined): boolean {\n return proto3.util.equals(ListOrganizationsResponse, a, b);\n }\n}\n\n","// Organization service for managing billing entities.\n\n// @generated by protoc-gen-connect-es v1.6.1 with parameter \"target=ts,import_extension=.js\"\n// @generated from file transcodely/v1/organization.proto (package transcodely.v1, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport { CheckSlugRequest, CheckSlugResponse, CreateOrganizationRequest, CreateOrganizationResponse, GetOrganizationRequest, GetOrganizationResponse, ListOrganizationsRequest, ListOrganizationsResponse, UpdateOrganizationRequest, UpdateOrganizationResponse } from \"./organization_pb.js\";\nimport { MethodKind } from \"@bufbuild/protobuf\";\n\n/**\n * OrganizationService manages organizations (billing entities).\n *\n * @generated from service transcodely.v1.OrganizationService\n */\nexport const OrganizationService = {\n typeName: \"transcodely.v1.OrganizationService\",\n methods: {\n /**\n * Check if a slug is available for use.\n * Use this before creating an organization to validate the slug.\n *\n * @generated from rpc transcodely.v1.OrganizationService.CheckSlug\n */\n checkSlug: {\n name: \"CheckSlug\",\n I: CheckSlugRequest,\n O: CheckSlugResponse,\n kind: MethodKind.Unary,\n },\n /**\n * Create a new organization.\n *\n * @generated from rpc transcodely.v1.OrganizationService.Create\n */\n create: {\n name: \"Create\",\n I: CreateOrganizationRequest,\n O: CreateOrganizationResponse,\n kind: MethodKind.Unary,\n },\n /**\n * Get an organization by ID or slug.\n *\n * @generated from rpc transcodely.v1.OrganizationService.Get\n */\n get: {\n name: \"Get\",\n I: GetOrganizationRequest,\n O: GetOrganizationResponse,\n kind: MethodKind.Unary,\n },\n /**\n * Update an organization's display name and billing email.\n * Note: Slug cannot be changed after creation.\n *\n * @generated from rpc transcodely.v1.OrganizationService.Update\n */\n update: {\n name: \"Update\",\n I: UpdateOrganizationRequest,\n O: UpdateOrganizationResponse,\n kind: MethodKind.Unary,\n },\n /**\n * List organizations the authenticated user has access to.\n *\n * @generated from rpc transcodely.v1.OrganizationService.List\n */\n list: {\n name: \"List\",\n I: ListOrganizationsRequest,\n O: ListOrganizationsResponse,\n kind: MethodKind.Unary,\n },\n }\n} as const;\n\n","import type { PartialMessage } from \"@bufbuild/protobuf\";\n\nimport { OrganizationService } from \"../gen/transcodely/v1/organization_connect.js\";\nimport {\n CheckSlugRequest,\n CreateOrganizationRequest,\n GetOrganizationRequest,\n ListOrganizationsRequest,\n type Organization,\n UpdateOrganizationRequest,\n} from \"../gen/transcodely/v1/organization_pb.js\";\nimport { PaginationRequest } from \"../gen/transcodely/v1/common_pb.js\";\n\nimport { Page } from \"../pagination.js\";\nimport type { CallOptions, Transport } from \"../transport/transport.js\";\n\nexport class Organizations {\n constructor(private readonly transport: Transport) {}\n\n checkSlug(slug: string, opts?: CallOptions) {\n return this.transport.unary(\n OrganizationService,\n OrganizationService.methods.checkSlug,\n new CheckSlugRequest({ slug }),\n opts,\n );\n }\n\n async create(\n req: PartialMessage<CreateOrganizationRequest>,\n opts?: CallOptions,\n ): Promise<Organization> {\n const res = await this.transport.unary(\n OrganizationService,\n OrganizationService.methods.create,\n new CreateOrganizationRequest(req),\n opts,\n );\n return res.organization!;\n }\n\n /** Look up an organization by ID (`org_*`) or slug. */\n async get(idOrSlug: string, opts?: CallOptions): Promise<Organization> {\n const res = await this.transport.unary(\n OrganizationService,\n OrganizationService.methods.get,\n new GetOrganizationRequest({ idOrSlug }),\n opts,\n );\n return res.organization!;\n }\n\n async update(\n req: PartialMessage<UpdateOrganizationRequest>,\n opts?: CallOptions,\n ): Promise<Organization> {\n const res = await this.transport.unary(\n OrganizationService,\n OrganizationService.methods.update,\n new UpdateOrganizationRequest(req),\n opts,\n );\n return res.organization!;\n }\n\n list(\n req: PartialMessage<ListOrganizationsRequest> = {},\n opts?: CallOptions,\n ): Page<Organization> {\n return new Page<Organization>(async (cursor) => {\n const proto = new ListOrganizationsRequest(req);\n if (cursor !== undefined) {\n proto.pagination = new PaginationRequest({\n ...(req.pagination ?? {}),\n cursor,\n });\n }\n const res = await this.transport.unary(\n OrganizationService,\n OrganizationService.methods.list,\n proto,\n opts,\n );\n return { items: res.organizations, nextCursor: res.pagination?.nextCursor || undefined };\n });\n }\n}\n","// Origin service for managing storage origins (inputs/outputs).\n// Origins are storage locations (GCS, S3, HTTP) used for video inputs and outputs.\n\n// @generated by protoc-gen-connect-es v1.6.1 with parameter \"target=ts,import_extension=.js\"\n// @generated from file transcodely/v1/origin.proto (package transcodely.v1, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ArchiveOriginRequest, ArchiveOriginResponse, CreateOriginRequest, CreateOriginResponse, GetOriginRequest, GetOriginResponse, ListOriginsRequest, ListOriginsResponse, UpdateOriginRequest, UpdateOriginResponse, ValidateOriginRequest, ValidateOriginResponse } from \"./origin_pb.js\";\nimport { MethodKind } from \"@bufbuild/protobuf\";\n\n/**\n * OriginService manages storage origins for video inputs and outputs.\n *\n * @generated from service transcodely.v1.OriginService\n */\nexport const OriginService = {\n typeName: \"transcodely.v1.OriginService\",\n methods: {\n /**\n * Create a new origin with validated credentials.\n * Credentials are validated at creation time and must pass before the origin is stored.\n *\n * @generated from rpc transcodely.v1.OriginService.Create\n */\n create: {\n name: \"Create\",\n I: CreateOriginRequest,\n O: CreateOriginResponse,\n kind: MethodKind.Unary,\n },\n /**\n * Get an origin by ID.\n *\n * @generated from rpc transcodely.v1.OriginService.Get\n */\n get: {\n name: \"Get\",\n I: GetOriginRequest,\n O: GetOriginResponse,\n kind: MethodKind.Unary,\n },\n /**\n * List origins with optional filtering.\n *\n * @generated from rpc transcodely.v1.OriginService.List\n */\n list: {\n name: \"List\",\n I: ListOriginsRequest,\n O: ListOriginsResponse,\n kind: MethodKind.Unary,\n },\n /**\n * Update an origin's mutable fields (name, description, base_path, path_template).\n * Credential updates require Validate to be called afterward.\n *\n * @generated from rpc transcodely.v1.OriginService.Update\n */\n update: {\n name: \"Update\",\n I: UpdateOriginRequest,\n O: UpdateOriginResponse,\n kind: MethodKind.Unary,\n },\n /**\n * Validate an origin's credentials and permissions.\n * This is automatically done at creation but can be re-run to check for permission drift.\n *\n * @generated from rpc transcodely.v1.OriginService.Validate\n */\n validate: {\n name: \"Validate\",\n I: ValidateOriginRequest,\n O: ValidateOriginResponse,\n kind: MethodKind.Unary,\n },\n /**\n * Archive an origin (soft delete).\n * Archived origins cannot be used for new jobs but existing job data is preserved.\n *\n * @generated from rpc transcodely.v1.OriginService.Archive\n */\n archive: {\n name: \"Archive\",\n I: ArchiveOriginRequest,\n O: ArchiveOriginResponse,\n kind: MethodKind.Unary,\n },\n }\n} as const;\n\n","import type { PartialMessage } from \"@bufbuild/protobuf\";\n\nimport { OriginService } from \"../gen/transcodely/v1/origin_connect.js\";\nimport {\n ArchiveOriginRequest,\n CreateOriginRequest,\n GetOriginRequest,\n ListOriginsRequest,\n type Origin,\n UpdateOriginRequest,\n ValidateOriginRequest,\n} from \"../gen/transcodely/v1/origin_pb.js\";\nimport { PaginationRequest } from \"../gen/transcodely/v1/common_pb.js\";\n\nimport { Page } from \"../pagination.js\";\nimport type { CallOptions, Transport } from \"../transport/transport.js\";\n\nexport class Origins {\n constructor(private readonly transport: Transport) {}\n\n async create(req: PartialMessage<CreateOriginRequest>, opts?: CallOptions): Promise<Origin> {\n const res = await this.transport.unary(\n OriginService,\n OriginService.methods.create,\n new CreateOriginRequest(req),\n opts,\n );\n return res.origin!;\n }\n\n async get(id: string, opts?: CallOptions): Promise<Origin> {\n const res = await this.transport.unary(\n OriginService,\n OriginService.methods.get,\n new GetOriginRequest({ id }),\n opts,\n );\n return res.origin!;\n }\n\n list(req: PartialMessage<ListOriginsRequest> = {}, opts?: CallOptions): Page<Origin> {\n return new Page<Origin>(async (cursor) => {\n const proto = new ListOriginsRequest(req);\n if (cursor !== undefined) {\n proto.pagination = new PaginationRequest({\n ...(req.pagination ?? {}),\n cursor,\n });\n }\n const res = await this.transport.unary(\n OriginService,\n OriginService.methods.list,\n proto,\n opts,\n );\n return { items: res.origins, nextCursor: res.pagination?.nextCursor || undefined };\n });\n }\n\n async update(req: PartialMessage<UpdateOriginRequest>, opts?: CallOptions): Promise<Origin> {\n const res = await this.transport.unary(\n OriginService,\n OriginService.methods.update,\n new UpdateOriginRequest(req),\n opts,\n );\n return res.origin!;\n }\n\n validate(req: PartialMessage<ValidateOriginRequest>, opts?: CallOptions) {\n return this.transport.unary(\n OriginService,\n OriginService.methods.validate,\n new ValidateOriginRequest(req),\n opts,\n );\n }\n\n async archive(id: string, opts?: CallOptions): Promise<Origin> {\n const res = await this.transport.unary(\n OriginService,\n OriginService.methods.archive,\n new ArchiveOriginRequest({ id }),\n opts,\n );\n return res.origin!;\n }\n}\n","// Preset service for transcoding configuration templates.\n\n// @generated by protoc-gen-es v1.10.0 with parameter \"target=ts,import_extension=.js\"\n// @generated from file transcodely/v1/preset.proto (package transcodely.v1, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from \"@bufbuild/protobuf\";\nimport { Message, proto3, Timestamp } from \"@bufbuild/protobuf\";\nimport { AudioCodec, BitrateMode, Container, ContentType, DeliveryFormat, PaginationRequest, PaginationResponse, QualityTier, Resolution, VideoCodec } from \"./common_pb.js\";\nimport { StreamingConfig } from \"./streaming_pb.js\";\n\n/**\n * Full video encoding settings.\n * All fields are optional - when used in presets, omitted fields use sensible defaults.\n * When used as job overrides, omitted fields inherit from the preset.\n *\n * @generated from message transcodely.v1.VideoSettings\n */\nexport class VideoSettings extends Message<VideoSettings> {\n /**\n * Video codec to use.\n *\n * @generated from field: transcodely.v1.VideoCodec codec = 1;\n */\n codec = VideoCodec.UNSPECIFIED;\n\n /**\n * Target resolution preset.\n * Use this OR (width + height) for custom dimensions.\n *\n * @generated from field: transcodely.v1.Resolution resolution = 2;\n */\n resolution = Resolution.RESOLUTION_UNSPECIFIED;\n\n /**\n * Custom output width in pixels (128-7680).\n * Use with height for non-standard aspect ratios.\n *\n * @generated from field: optional int32 width = 3;\n */\n width?: number;\n\n /**\n * Custom output height in pixels (128-4320).\n *\n * @generated from field: optional int32 height = 4;\n */\n height?: number;\n\n /**\n * Target frame rate (0 = keep original, max 240).\n *\n * @generated from field: optional int32 framerate = 5;\n */\n framerate?: number;\n\n /**\n * Bitrate control mode.\n *\n * @generated from field: transcodely.v1.BitrateMode bitrate_mode = 6;\n */\n bitrateMode = BitrateMode.UNSPECIFIED;\n\n /**\n * Constant Rate Factor (15-35 for H.264, 18-35 for H.265, 15-50 for VP9, 20-55 for AV1).\n * Lower = higher quality, larger files.\n *\n * @generated from field: optional int32 crf = 7;\n */\n crf?: number;\n\n /**\n * Target bitrate in kbps for CBR/VBR modes (100-100000).\n *\n * @generated from field: optional int32 bitrate_kbps = 8;\n */\n bitrateKbps?: number;\n\n /**\n * Maximum bitrate for VBV in kbps (100-240000).\n *\n * @generated from field: optional int32 max_bitrate_kbps = 9;\n */\n maxBitrateKbps?: number;\n\n /**\n * VBV buffer size in kbps (100-480000).\n *\n * @generated from field: optional int32 buffer_size_kbps = 10;\n */\n bufferSizeKbps?: number;\n\n /**\n * Codec profile (e.g., \"baseline\", \"main\", \"high\" for H.264; \"main\", \"main10\" for H.265).\n *\n * @generated from field: optional string profile = 11;\n */\n profile?: string;\n\n /**\n * Codec level (e.g., \"3.0\", \"4.0\", \"5.1\").\n *\n * @generated from field: optional string level = 12;\n */\n level?: string;\n\n /**\n * Encoder speed preset.\n * For H.264/H.265: \"ultrafast\", \"superfast\", \"veryfast\", \"faster\", \"fast\", \"medium\", \"slow\", \"slower\".\n * For AV1: numeric \"3\"-\"12\" (lower = slower, better quality).\n * Note: \"veryslow\" and \"placebo\" are not allowed (extreme compute cost, minimal benefit).\n *\n * @generated from field: optional string encoder_preset = 13;\n */\n encoderPreset?: string;\n\n /**\n * Content-aware tuning.\n * For H.264: \"film\", \"animation\", \"grain\", \"stillimage\", \"fastdecode\".\n * For H.265: \"grain\", \"fastdecode\".\n * Note: \"zerolatency\" is not allowed (internal use only).\n *\n * @generated from field: optional string tune = 14;\n */\n tune?: string;\n\n /**\n * GOP size (keyframe interval in frames, 1-600).\n *\n * @generated from field: optional int32 keyint = 15;\n */\n keyint?: number;\n\n /**\n * Minimum keyframe interval (1-60).\n *\n * @generated from field: optional int32 min_keyint = 16;\n */\n minKeyint?: number;\n\n /**\n * Number of B-frames (0-16).\n *\n * @generated from field: optional int32 bframes = 17;\n */\n bframes?: number;\n\n /**\n * Number of reference frames (1-16).\n *\n * @generated from field: optional int32 refs = 18;\n */\n refs?: number;\n\n /**\n * Rate control lookahead frames (0-250).\n *\n * @generated from field: optional int32 rc_lookahead = 19;\n */\n rcLookahead?: number;\n\n /**\n * Adaptive quantization mode (0-3).\n *\n * @generated from field: optional int32 aq_mode = 20;\n */\n aqMode?: number;\n\n /**\n * Adaptive quantization strength (0.0-3.0).\n *\n * @generated from field: optional double aq_strength = 21;\n */\n aqStrength?: number;\n\n /**\n * Psychovisual rate-distortion optimization (\"strength:trellis\" format, e.g., \"1.0:0.0\").\n *\n * @generated from field: optional string psy_rd = 22;\n */\n psyRd?: string;\n\n /**\n * Deblocking filter strength (\"alpha:beta\" format, e.g., \"0:0\", \"-1:-1\").\n *\n * @generated from field: optional string deblock = 23;\n */\n deblock?: string;\n\n constructor(data?: PartialMessage<VideoSettings>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.VideoSettings\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"codec\", kind: \"enum\", T: proto3.getEnumType(VideoCodec) },\n { no: 2, name: \"resolution\", kind: \"enum\", T: proto3.getEnumType(Resolution) },\n { no: 3, name: \"width\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 4, name: \"height\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 5, name: \"framerate\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 6, name: \"bitrate_mode\", kind: \"enum\", T: proto3.getEnumType(BitrateMode) },\n { no: 7, name: \"crf\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 8, name: \"bitrate_kbps\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 9, name: \"max_bitrate_kbps\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 10, name: \"buffer_size_kbps\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 11, name: \"profile\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 12, name: \"level\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 13, name: \"encoder_preset\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 14, name: \"tune\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 15, name: \"keyint\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 16, name: \"min_keyint\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 17, name: \"bframes\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 18, name: \"refs\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 19, name: \"rc_lookahead\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 20, name: \"aq_mode\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 21, name: \"aq_strength\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */, opt: true },\n { no: 22, name: \"psy_rd\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 23, name: \"deblock\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): VideoSettings {\n return new VideoSettings().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): VideoSettings {\n return new VideoSettings().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): VideoSettings {\n return new VideoSettings().fromJsonString(jsonString, options);\n }\n\n static equals(a: VideoSettings | PlainMessage<VideoSettings> | undefined, b: VideoSettings | PlainMessage<VideoSettings> | undefined): boolean {\n return proto3.util.equals(VideoSettings, a, b);\n }\n}\n\n/**\n * Full audio encoding settings.\n *\n * @generated from message transcodely.v1.AudioSettings\n */\nexport class AudioSettings extends Message<AudioSettings> {\n /**\n * Audio codec to use.\n *\n * @generated from field: transcodely.v1.AudioCodec codec = 1;\n */\n codec = AudioCodec.UNSPECIFIED;\n\n /**\n * Target bitrate in kbps (32-512).\n *\n * @generated from field: int32 bitrate_kbps = 2;\n */\n bitrateKbps = 0;\n\n /**\n * Sample rate in Hz (0 = keep original, common: 44100, 48000).\n *\n * @generated from field: optional int32 sample_rate = 3;\n */\n sampleRate?: number;\n\n /**\n * Number of audio channels (0 = keep original, max 8).\n *\n * @generated from field: optional int32 channels = 4;\n */\n channels?: number;\n\n /**\n * Apply loudness normalization (EBU R128).\n *\n * @generated from field: optional bool normalize = 5;\n */\n normalize?: boolean;\n\n constructor(data?: PartialMessage<AudioSettings>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.AudioSettings\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"codec\", kind: \"enum\", T: proto3.getEnumType(AudioCodec) },\n { no: 2, name: \"bitrate_kbps\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */ },\n { no: 3, name: \"sample_rate\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 4, name: \"channels\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 5, name: \"normalize\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): AudioSettings {\n return new AudioSettings().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): AudioSettings {\n return new AudioSettings().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): AudioSettings {\n return new AudioSettings().fromJsonString(jsonString, options);\n }\n\n static equals(a: AudioSettings | PlainMessage<AudioSettings> | undefined, b: AudioSettings | PlainMessage<AudioSettings> | undefined): boolean {\n return proto3.util.equals(AudioSettings, a, b);\n }\n}\n\n/**\n * A single variant within a multi-variant ABR preset.\n * Defines per-resolution overrides; shared settings (codec, profile, encoder_preset,\n * audio, etc.) are inherited from the parent preset.\n *\n * @generated from message transcodely.v1.PresetVariant\n */\nexport class PresetVariant extends Message<PresetVariant> {\n /**\n * Target resolution for this variant.\n *\n * @generated from field: transcodely.v1.Resolution resolution = 1;\n */\n resolution = Resolution.RESOLUTION_UNSPECIFIED;\n\n /**\n * Custom output width in pixels (128-7680).\n *\n * @generated from field: optional int32 width = 2;\n */\n width?: number;\n\n /**\n * Custom output height in pixels (128-4320).\n *\n * @generated from field: optional int32 height = 3;\n */\n height?: number;\n\n /**\n * Target bitrate in kbps for VBR/CBR modes (100-240000).\n *\n * @generated from field: optional int32 bitrate_kbps = 4;\n */\n bitrateKbps?: number;\n\n /**\n * Maximum bitrate for VBV in kbps (100-240000).\n *\n * @generated from field: optional int32 max_bitrate_kbps = 5;\n */\n maxBitrateKbps?: number;\n\n /**\n * VBV buffer size in kbps (100-480000).\n *\n * @generated from field: optional int32 buffer_size_kbps = 6;\n */\n bufferSizeKbps?: number;\n\n /**\n * Constant Rate Factor override for this variant (0-63).\n * Codec-specific valid ranges apply at the service level.\n *\n * @generated from field: optional int32 crf = 7;\n */\n crf?: number;\n\n /**\n * Quality tier override for this variant.\n *\n * @generated from field: optional transcodely.v1.QualityTier quality = 8;\n */\n quality?: QualityTier;\n\n /**\n * Frame rate override for this variant (0 = keep original).\n *\n * @generated from field: optional int32 framerate = 9;\n */\n framerate?: number;\n\n constructor(data?: PartialMessage<PresetVariant>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.PresetVariant\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"resolution\", kind: \"enum\", T: proto3.getEnumType(Resolution) },\n { no: 2, name: \"width\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 3, name: \"height\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 4, name: \"bitrate_kbps\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 5, name: \"max_bitrate_kbps\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 6, name: \"buffer_size_kbps\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 7, name: \"crf\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 8, name: \"quality\", kind: \"enum\", T: proto3.getEnumType(QualityTier), opt: true },\n { no: 9, name: \"framerate\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): PresetVariant {\n return new PresetVariant().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): PresetVariant {\n return new PresetVariant().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): PresetVariant {\n return new PresetVariant().fromJsonString(jsonString, options);\n }\n\n static equals(a: PresetVariant | PlainMessage<PresetVariant> | undefined, b: PresetVariant | PlainMessage<PresetVariant> | undefined): boolean {\n return proto3.util.equals(PresetVariant, a, b);\n }\n}\n\n/**\n * A transcoding preset.\n *\n * @generated from message transcodely.v1.Preset\n */\nexport class Preset extends Message<Preset> {\n /**\n * Unique preset identifier (e.g., \"pst_x9y8z7w6v5\").\n *\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n /**\n * URL-safe slug identifier (e.g., \"film_1080p_standard\").\n * Used for referencing presets in job creation.\n *\n * @generated from field: string slug = 2;\n */\n slug = \"\";\n\n /**\n * Human-readable name.\n *\n * @generated from field: string name = 3;\n */\n name = \"\";\n\n /**\n * Optional description.\n *\n * @generated from field: optional string description = 4;\n */\n description?: string;\n\n /**\n * Content type for encoder tuning optimization.\n *\n * @generated from field: transcodely.v1.ContentType content_type = 5;\n */\n contentType = ContentType.UNSPECIFIED;\n\n /**\n * Container format.\n *\n * @generated from field: transcodely.v1.Container container = 6;\n */\n container = Container.UNSPECIFIED;\n\n /**\n * Enable faststart (moov atom at beginning) for progressive MP4.\n *\n * @generated from field: bool faststart = 7;\n */\n faststart = false;\n\n /**\n * Delivery format (affects packaging).\n *\n * @generated from field: transcodely.v1.DeliveryFormat delivery_format = 8;\n */\n deliveryFormat = DeliveryFormat.UNSPECIFIED;\n\n /**\n * Streaming configuration for HLS/DASH outputs.\n * Includes segment duration, GOP alignment, and format options.\n * DEPRECATED: segment_duration field 9 is replaced by this.\n *\n * @generated from field: optional transcodely.v1.StreamingConfig streaming = 17;\n */\n streaming?: StreamingConfig;\n\n /**\n * Segment duration in seconds for HLS/DASH (default: 6).\n * DEPRECATED: Use streaming.segment_duration_seconds instead.\n *\n * @generated from field: optional int32 segment_duration = 9;\n */\n segmentDuration?: number;\n\n /**\n * Video encoding settings.\n *\n * @generated from field: transcodely.v1.VideoSettings video = 10;\n */\n video?: VideoSettings;\n\n /**\n * Audio encoding settings.\n *\n * @generated from field: transcodely.v1.AudioSettings audio = 11;\n */\n audio?: AudioSettings;\n\n /**\n * Quality tier (affects encoding speed and pricing).\n *\n * @generated from field: transcodely.v1.QualityTier quality_tier = 12;\n */\n qualityTier = QualityTier.UNSPECIFIED;\n\n /**\n * Estimated cost per minute of encoded video (EUR).\n * Calculated from codec, resolution, framerate, and quality multipliers.\n *\n * @generated from field: optional double estimated_cost_per_minute = 13;\n */\n estimatedCostPerMinute?: number;\n\n /**\n * Whether this is a system preset (read-only, available to all apps).\n *\n * @generated from field: bool system_preset = 14;\n */\n systemPreset = false;\n\n /**\n * When the preset was created.\n *\n * @generated from field: google.protobuf.Timestamp created_at = 15;\n */\n createdAt?: Timestamp;\n\n /**\n * When the preset was last updated.\n *\n * @generated from field: google.protobuf.Timestamp updated_at = 16;\n */\n updatedAt?: Timestamp;\n\n /**\n * Multi-variant ABR configuration.\n * When non-empty, defines a complete ABR ladder for streaming presets.\n * Each variant inherits shared settings (codec, quality_tier, audio, streaming)\n * from the preset, with per-variant overrides for resolution, bitrate, etc.\n * Only valid when delivery_format is hls, dash, or cmaf.\n *\n * @generated from field: repeated transcodely.v1.PresetVariant variants = 18;\n */\n variants: PresetVariant[] = [];\n\n constructor(data?: PartialMessage<Preset>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.Preset\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"slug\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"description\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 5, name: \"content_type\", kind: \"enum\", T: proto3.getEnumType(ContentType) },\n { no: 6, name: \"container\", kind: \"enum\", T: proto3.getEnumType(Container) },\n { no: 7, name: \"faststart\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 8, name: \"delivery_format\", kind: \"enum\", T: proto3.getEnumType(DeliveryFormat) },\n { no: 17, name: \"streaming\", kind: \"message\", T: StreamingConfig, opt: true },\n { no: 9, name: \"segment_duration\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 10, name: \"video\", kind: \"message\", T: VideoSettings },\n { no: 11, name: \"audio\", kind: \"message\", T: AudioSettings },\n { no: 12, name: \"quality_tier\", kind: \"enum\", T: proto3.getEnumType(QualityTier) },\n { no: 13, name: \"estimated_cost_per_minute\", kind: \"scalar\", T: 1 /* ScalarType.DOUBLE */, opt: true },\n { no: 14, name: \"system_preset\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 15, name: \"created_at\", kind: \"message\", T: Timestamp },\n { no: 16, name: \"updated_at\", kind: \"message\", T: Timestamp },\n { no: 18, name: \"variants\", kind: \"message\", T: PresetVariant, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): Preset {\n return new Preset().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): Preset {\n return new Preset().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): Preset {\n return new Preset().fromJsonString(jsonString, options);\n }\n\n static equals(a: Preset | PlainMessage<Preset> | undefined, b: Preset | PlainMessage<Preset> | undefined): boolean {\n return proto3.util.equals(Preset, a, b);\n }\n}\n\n/**\n * Request to create a preset.\n *\n * @generated from message transcodely.v1.CreatePresetRequest\n */\nexport class CreatePresetRequest extends Message<CreatePresetRequest> {\n /**\n * URL-safe slug identifier (required, must be unique per app).\n * Format: lowercase letters, numbers, and underscores only.\n * Example: \"my_custom_1080p\", \"gaming_4k_premium\"\n *\n * @generated from field: string slug = 1;\n */\n slug = \"\";\n\n /**\n * Human-readable name.\n *\n * @generated from field: string name = 2;\n */\n name = \"\";\n\n /**\n * Optional description.\n *\n * @generated from field: optional string description = 3;\n */\n description?: string;\n\n /**\n * Content type for encoder tuning.\n *\n * @generated from field: transcodely.v1.ContentType content_type = 4;\n */\n contentType = ContentType.UNSPECIFIED;\n\n /**\n * Container format (required).\n *\n * @generated from field: transcodely.v1.Container container = 5;\n */\n container = Container.UNSPECIFIED;\n\n /**\n * Enable faststart for progressive MP4 (default: true).\n *\n * @generated from field: optional bool faststart = 6;\n */\n faststart?: boolean;\n\n /**\n * Delivery format.\n *\n * @generated from field: transcodely.v1.DeliveryFormat delivery_format = 7;\n */\n deliveryFormat = DeliveryFormat.UNSPECIFIED;\n\n /**\n * Streaming configuration for HLS/DASH outputs.\n * Includes segment duration, GOP alignment, and format options.\n *\n * @generated from field: optional transcodely.v1.StreamingConfig streaming = 13;\n */\n streaming?: StreamingConfig;\n\n /**\n * Segment duration in seconds for HLS/DASH (2-30, default: 6).\n * DEPRECATED: Use streaming.segment_duration_seconds instead.\n *\n * @generated from field: optional int32 segment_duration = 8;\n */\n segmentDuration?: number;\n\n /**\n * Video encoding settings.\n *\n * @generated from field: transcodely.v1.VideoSettings video = 9;\n */\n video?: VideoSettings;\n\n /**\n * Audio encoding settings.\n *\n * @generated from field: transcodely.v1.AudioSettings audio = 10;\n */\n audio?: AudioSettings;\n\n /**\n * Quality tier.\n *\n * @generated from field: transcodely.v1.QualityTier quality_tier = 11;\n */\n qualityTier = QualityTier.UNSPECIFIED;\n\n /**\n * Multi-variant ABR configuration (max 20 variants).\n * Only valid when delivery_format is hls, dash, or cmaf.\n * Requires at least 2 variants when non-empty.\n *\n * @generated from field: repeated transcodely.v1.PresetVariant variants = 14;\n */\n variants: PresetVariant[] = [];\n\n constructor(data?: PartialMessage<CreatePresetRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.CreatePresetRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"slug\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"description\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 4, name: \"content_type\", kind: \"enum\", T: proto3.getEnumType(ContentType) },\n { no: 5, name: \"container\", kind: \"enum\", T: proto3.getEnumType(Container) },\n { no: 6, name: \"faststart\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true },\n { no: 7, name: \"delivery_format\", kind: \"enum\", T: proto3.getEnumType(DeliveryFormat) },\n { no: 13, name: \"streaming\", kind: \"message\", T: StreamingConfig, opt: true },\n { no: 8, name: \"segment_duration\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 9, name: \"video\", kind: \"message\", T: VideoSettings },\n { no: 10, name: \"audio\", kind: \"message\", T: AudioSettings },\n { no: 11, name: \"quality_tier\", kind: \"enum\", T: proto3.getEnumType(QualityTier) },\n { no: 14, name: \"variants\", kind: \"message\", T: PresetVariant, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CreatePresetRequest {\n return new CreatePresetRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CreatePresetRequest {\n return new CreatePresetRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CreatePresetRequest {\n return new CreatePresetRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: CreatePresetRequest | PlainMessage<CreatePresetRequest> | undefined, b: CreatePresetRequest | PlainMessage<CreatePresetRequest> | undefined): boolean {\n return proto3.util.equals(CreatePresetRequest, a, b);\n }\n}\n\n/**\n * Response from creating a preset.\n *\n * @generated from message transcodely.v1.CreatePresetResponse\n */\nexport class CreatePresetResponse extends Message<CreatePresetResponse> {\n /**\n * The created preset.\n *\n * @generated from field: transcodely.v1.Preset preset = 1;\n */\n preset?: Preset;\n\n constructor(data?: PartialMessage<CreatePresetResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.CreatePresetResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"preset\", kind: \"message\", T: Preset },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CreatePresetResponse {\n return new CreatePresetResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CreatePresetResponse {\n return new CreatePresetResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CreatePresetResponse {\n return new CreatePresetResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: CreatePresetResponse | PlainMessage<CreatePresetResponse> | undefined, b: CreatePresetResponse | PlainMessage<CreatePresetResponse> | undefined): boolean {\n return proto3.util.equals(CreatePresetResponse, a, b);\n }\n}\n\n/**\n * Request to get a preset by ID.\n *\n * @generated from message transcodely.v1.GetPresetRequest\n */\nexport class GetPresetRequest extends Message<GetPresetRequest> {\n /**\n * ID of the preset to retrieve.\n *\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n constructor(data?: PartialMessage<GetPresetRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.GetPresetRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetPresetRequest {\n return new GetPresetRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetPresetRequest {\n return new GetPresetRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetPresetRequest {\n return new GetPresetRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: GetPresetRequest | PlainMessage<GetPresetRequest> | undefined, b: GetPresetRequest | PlainMessage<GetPresetRequest> | undefined): boolean {\n return proto3.util.equals(GetPresetRequest, a, b);\n }\n}\n\n/**\n * Response from getting a preset.\n *\n * @generated from message transcodely.v1.GetPresetResponse\n */\nexport class GetPresetResponse extends Message<GetPresetResponse> {\n /**\n * The requested preset.\n *\n * @generated from field: transcodely.v1.Preset preset = 1;\n */\n preset?: Preset;\n\n constructor(data?: PartialMessage<GetPresetResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.GetPresetResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"preset\", kind: \"message\", T: Preset },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetPresetResponse {\n return new GetPresetResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetPresetResponse {\n return new GetPresetResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetPresetResponse {\n return new GetPresetResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: GetPresetResponse | PlainMessage<GetPresetResponse> | undefined, b: GetPresetResponse | PlainMessage<GetPresetResponse> | undefined): boolean {\n return proto3.util.equals(GetPresetResponse, a, b);\n }\n}\n\n/**\n * Request to get a preset by slug.\n *\n * @generated from message transcodely.v1.GetPresetBySlugRequest\n */\nexport class GetPresetBySlugRequest extends Message<GetPresetBySlugRequest> {\n /**\n * Slug of the preset to retrieve.\n *\n * @generated from field: string slug = 1;\n */\n slug = \"\";\n\n constructor(data?: PartialMessage<GetPresetBySlugRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.GetPresetBySlugRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"slug\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetPresetBySlugRequest {\n return new GetPresetBySlugRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetPresetBySlugRequest {\n return new GetPresetBySlugRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetPresetBySlugRequest {\n return new GetPresetBySlugRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: GetPresetBySlugRequest | PlainMessage<GetPresetBySlugRequest> | undefined, b: GetPresetBySlugRequest | PlainMessage<GetPresetBySlugRequest> | undefined): boolean {\n return proto3.util.equals(GetPresetBySlugRequest, a, b);\n }\n}\n\n/**\n * Response from getting a preset by slug.\n *\n * @generated from message transcodely.v1.GetPresetBySlugResponse\n */\nexport class GetPresetBySlugResponse extends Message<GetPresetBySlugResponse> {\n /**\n * The requested preset.\n *\n * @generated from field: transcodely.v1.Preset preset = 1;\n */\n preset?: Preset;\n\n constructor(data?: PartialMessage<GetPresetBySlugResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.GetPresetBySlugResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"preset\", kind: \"message\", T: Preset },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetPresetBySlugResponse {\n return new GetPresetBySlugResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetPresetBySlugResponse {\n return new GetPresetBySlugResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetPresetBySlugResponse {\n return new GetPresetBySlugResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: GetPresetBySlugResponse | PlainMessage<GetPresetBySlugResponse> | undefined, b: GetPresetBySlugResponse | PlainMessage<GetPresetBySlugResponse> | undefined): boolean {\n return proto3.util.equals(GetPresetBySlugResponse, a, b);\n }\n}\n\n/**\n * Request to list presets.\n *\n * @generated from message transcodely.v1.ListPresetsRequest\n */\nexport class ListPresetsRequest extends Message<ListPresetsRequest> {\n /**\n * Include system presets (default: true).\n *\n * @generated from field: optional bool include_system = 1;\n */\n includeSystem?: boolean;\n\n /**\n * Filter by content type.\n *\n * @generated from field: optional transcodely.v1.ContentType content_type = 2;\n */\n contentType?: ContentType;\n\n /**\n * Filter by quality tier.\n *\n * @generated from field: optional transcodely.v1.QualityTier quality_tier = 3;\n */\n qualityTier?: QualityTier;\n\n /**\n * Filter by video codec.\n *\n * @generated from field: optional transcodely.v1.VideoCodec video_codec = 4;\n */\n videoCodec?: VideoCodec;\n\n /**\n * Filter by delivery format (progressive, hls, dash, cmaf).\n *\n * @generated from field: optional transcodely.v1.DeliveryFormat delivery_format = 6;\n */\n deliveryFormat?: DeliveryFormat;\n\n /**\n * Pagination parameters.\n *\n * @generated from field: transcodely.v1.PaginationRequest pagination = 5;\n */\n pagination?: PaginationRequest;\n\n constructor(data?: PartialMessage<ListPresetsRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.ListPresetsRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"include_system\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true },\n { no: 2, name: \"content_type\", kind: \"enum\", T: proto3.getEnumType(ContentType), opt: true },\n { no: 3, name: \"quality_tier\", kind: \"enum\", T: proto3.getEnumType(QualityTier), opt: true },\n { no: 4, name: \"video_codec\", kind: \"enum\", T: proto3.getEnumType(VideoCodec), opt: true },\n { no: 6, name: \"delivery_format\", kind: \"enum\", T: proto3.getEnumType(DeliveryFormat), opt: true },\n { no: 5, name: \"pagination\", kind: \"message\", T: PaginationRequest },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListPresetsRequest {\n return new ListPresetsRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListPresetsRequest {\n return new ListPresetsRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListPresetsRequest {\n return new ListPresetsRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: ListPresetsRequest | PlainMessage<ListPresetsRequest> | undefined, b: ListPresetsRequest | PlainMessage<ListPresetsRequest> | undefined): boolean {\n return proto3.util.equals(ListPresetsRequest, a, b);\n }\n}\n\n/**\n * Response from listing presets.\n *\n * @generated from message transcodely.v1.ListPresetsResponse\n */\nexport class ListPresetsResponse extends Message<ListPresetsResponse> {\n /**\n * List of presets.\n *\n * @generated from field: repeated transcodely.v1.Preset presets = 1;\n */\n presets: Preset[] = [];\n\n /**\n * Pagination metadata.\n *\n * @generated from field: transcodely.v1.PaginationResponse pagination = 2;\n */\n pagination?: PaginationResponse;\n\n constructor(data?: PartialMessage<ListPresetsResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.ListPresetsResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"presets\", kind: \"message\", T: Preset, repeated: true },\n { no: 2, name: \"pagination\", kind: \"message\", T: PaginationResponse },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListPresetsResponse {\n return new ListPresetsResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListPresetsResponse {\n return new ListPresetsResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListPresetsResponse {\n return new ListPresetsResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: ListPresetsResponse | PlainMessage<ListPresetsResponse> | undefined, b: ListPresetsResponse | PlainMessage<ListPresetsResponse> | undefined): boolean {\n return proto3.util.equals(ListPresetsResponse, a, b);\n }\n}\n\n/**\n * Request to update a preset.\n *\n * @generated from message transcodely.v1.UpdatePresetRequest\n */\nexport class UpdatePresetRequest extends Message<UpdatePresetRequest> {\n /**\n * ID of the preset to update.\n *\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n /**\n * New slug (optional, must be unique if provided).\n *\n * @generated from field: optional string slug = 2;\n */\n slug?: string;\n\n /**\n * New name (optional).\n *\n * @generated from field: optional string name = 3;\n */\n name?: string;\n\n /**\n * New description (optional).\n *\n * @generated from field: optional string description = 4;\n */\n description?: string;\n\n /**\n * New content type (optional).\n *\n * @generated from field: optional transcodely.v1.ContentType content_type = 5;\n */\n contentType?: ContentType;\n\n /**\n * New container format (optional).\n *\n * @generated from field: optional transcodely.v1.Container container = 6;\n */\n container?: Container;\n\n /**\n * New faststart setting (optional).\n *\n * @generated from field: optional bool faststart = 7;\n */\n faststart?: boolean;\n\n /**\n * New delivery format (optional).\n *\n * @generated from field: optional transcodely.v1.DeliveryFormat delivery_format = 8;\n */\n deliveryFormat?: DeliveryFormat;\n\n /**\n * New streaming configuration (optional).\n *\n * @generated from field: optional transcodely.v1.StreamingConfig streaming = 14;\n */\n streaming?: StreamingConfig;\n\n /**\n * New segment duration (optional).\n * DEPRECATED: Use streaming.segment_duration_seconds instead.\n *\n * @generated from field: optional int32 segment_duration = 9;\n */\n segmentDuration?: number;\n\n /**\n * New video settings (optional, replaces entire video config if provided).\n *\n * @generated from field: optional transcodely.v1.VideoSettings video = 10;\n */\n video?: VideoSettings;\n\n /**\n * New audio settings (optional, replaces entire audio config if provided).\n *\n * @generated from field: optional transcodely.v1.AudioSettings audio = 11;\n */\n audio?: AudioSettings;\n\n /**\n * New quality tier (optional).\n *\n * @generated from field: optional transcodely.v1.QualityTier quality_tier = 12;\n */\n qualityTier?: QualityTier;\n\n /**\n * New multi-variant ABR configuration (max 20 variants).\n * Set to replace all variants. Send empty array to clear variants.\n * Only valid when delivery_format is hls, dash, or cmaf.\n *\n * @generated from field: repeated transcodely.v1.PresetVariant variants = 15;\n */\n variants: PresetVariant[] = [];\n\n constructor(data?: PartialMessage<UpdatePresetRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.UpdatePresetRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"slug\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 3, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 4, name: \"description\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 5, name: \"content_type\", kind: \"enum\", T: proto3.getEnumType(ContentType), opt: true },\n { no: 6, name: \"container\", kind: \"enum\", T: proto3.getEnumType(Container), opt: true },\n { no: 7, name: \"faststart\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */, opt: true },\n { no: 8, name: \"delivery_format\", kind: \"enum\", T: proto3.getEnumType(DeliveryFormat), opt: true },\n { no: 14, name: \"streaming\", kind: \"message\", T: StreamingConfig, opt: true },\n { no: 9, name: \"segment_duration\", kind: \"scalar\", T: 5 /* ScalarType.INT32 */, opt: true },\n { no: 10, name: \"video\", kind: \"message\", T: VideoSettings, opt: true },\n { no: 11, name: \"audio\", kind: \"message\", T: AudioSettings, opt: true },\n { no: 12, name: \"quality_tier\", kind: \"enum\", T: proto3.getEnumType(QualityTier), opt: true },\n { no: 15, name: \"variants\", kind: \"message\", T: PresetVariant, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): UpdatePresetRequest {\n return new UpdatePresetRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): UpdatePresetRequest {\n return new UpdatePresetRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): UpdatePresetRequest {\n return new UpdatePresetRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: UpdatePresetRequest | PlainMessage<UpdatePresetRequest> | undefined, b: UpdatePresetRequest | PlainMessage<UpdatePresetRequest> | undefined): boolean {\n return proto3.util.equals(UpdatePresetRequest, a, b);\n }\n}\n\n/**\n * Response from updating a preset.\n *\n * @generated from message transcodely.v1.UpdatePresetResponse\n */\nexport class UpdatePresetResponse extends Message<UpdatePresetResponse> {\n /**\n * The updated preset.\n *\n * @generated from field: transcodely.v1.Preset preset = 1;\n */\n preset?: Preset;\n\n constructor(data?: PartialMessage<UpdatePresetResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.UpdatePresetResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"preset\", kind: \"message\", T: Preset },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): UpdatePresetResponse {\n return new UpdatePresetResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): UpdatePresetResponse {\n return new UpdatePresetResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): UpdatePresetResponse {\n return new UpdatePresetResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: UpdatePresetResponse | PlainMessage<UpdatePresetResponse> | undefined, b: UpdatePresetResponse | PlainMessage<UpdatePresetResponse> | undefined): boolean {\n return proto3.util.equals(UpdatePresetResponse, a, b);\n }\n}\n\n/**\n * Request to duplicate a preset.\n *\n * @generated from message transcodely.v1.DuplicatePresetRequest\n */\nexport class DuplicatePresetRequest extends Message<DuplicatePresetRequest> {\n /**\n * ID of the source preset to copy.\n *\n * @generated from field: string source_id = 1;\n */\n sourceId = \"\";\n\n /**\n * New slug for the duplicate (required, must be unique).\n *\n * @generated from field: string slug = 2;\n */\n slug = \"\";\n\n /**\n * New name for the duplicate.\n *\n * @generated from field: string name = 3;\n */\n name = \"\";\n\n constructor(data?: PartialMessage<DuplicatePresetRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.DuplicatePresetRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"source_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"slug\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): DuplicatePresetRequest {\n return new DuplicatePresetRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): DuplicatePresetRequest {\n return new DuplicatePresetRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): DuplicatePresetRequest {\n return new DuplicatePresetRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: DuplicatePresetRequest | PlainMessage<DuplicatePresetRequest> | undefined, b: DuplicatePresetRequest | PlainMessage<DuplicatePresetRequest> | undefined): boolean {\n return proto3.util.equals(DuplicatePresetRequest, a, b);\n }\n}\n\n/**\n * Response from duplicating a preset.\n *\n * @generated from message transcodely.v1.DuplicatePresetResponse\n */\nexport class DuplicatePresetResponse extends Message<DuplicatePresetResponse> {\n /**\n * The new preset (copy of the source).\n *\n * @generated from field: transcodely.v1.Preset preset = 1;\n */\n preset?: Preset;\n\n constructor(data?: PartialMessage<DuplicatePresetResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.DuplicatePresetResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"preset\", kind: \"message\", T: Preset },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): DuplicatePresetResponse {\n return new DuplicatePresetResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): DuplicatePresetResponse {\n return new DuplicatePresetResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): DuplicatePresetResponse {\n return new DuplicatePresetResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: DuplicatePresetResponse | PlainMessage<DuplicatePresetResponse> | undefined, b: DuplicatePresetResponse | PlainMessage<DuplicatePresetResponse> | undefined): boolean {\n return proto3.util.equals(DuplicatePresetResponse, a, b);\n }\n}\n\n/**\n * Request to archive a preset.\n *\n * @generated from message transcodely.v1.ArchivePresetRequest\n */\nexport class ArchivePresetRequest extends Message<ArchivePresetRequest> {\n /**\n * ID of the preset to archive.\n *\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n constructor(data?: PartialMessage<ArchivePresetRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.ArchivePresetRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ArchivePresetRequest {\n return new ArchivePresetRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ArchivePresetRequest {\n return new ArchivePresetRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ArchivePresetRequest {\n return new ArchivePresetRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: ArchivePresetRequest | PlainMessage<ArchivePresetRequest> | undefined, b: ArchivePresetRequest | PlainMessage<ArchivePresetRequest> | undefined): boolean {\n return proto3.util.equals(ArchivePresetRequest, a, b);\n }\n}\n\n/**\n * Response from archiving a preset.\n *\n * @generated from message transcodely.v1.ArchivePresetResponse\n */\nexport class ArchivePresetResponse extends Message<ArchivePresetResponse> {\n /**\n * The archived preset.\n *\n * @generated from field: transcodely.v1.Preset preset = 1;\n */\n preset?: Preset;\n\n constructor(data?: PartialMessage<ArchivePresetResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.ArchivePresetResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"preset\", kind: \"message\", T: Preset },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ArchivePresetResponse {\n return new ArchivePresetResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ArchivePresetResponse {\n return new ArchivePresetResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ArchivePresetResponse {\n return new ArchivePresetResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: ArchivePresetResponse | PlainMessage<ArchivePresetResponse> | undefined, b: ArchivePresetResponse | PlainMessage<ArchivePresetResponse> | undefined): boolean {\n return proto3.util.equals(ArchivePresetResponse, a, b);\n }\n}\n\n","// Preset service for transcoding configuration templates.\n\n// @generated by protoc-gen-connect-es v1.6.1 with parameter \"target=ts,import_extension=.js\"\n// @generated from file transcodely/v1/preset.proto (package transcodely.v1, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport { ArchivePresetRequest, ArchivePresetResponse, CreatePresetRequest, CreatePresetResponse, DuplicatePresetRequest, DuplicatePresetResponse, GetPresetBySlugRequest, GetPresetBySlugResponse, GetPresetRequest, GetPresetResponse, ListPresetsRequest, ListPresetsResponse, UpdatePresetRequest, UpdatePresetResponse } from \"./preset_pb.js\";\nimport { MethodKind } from \"@bufbuild/protobuf\";\n\n/**\n * PresetService manages transcoding presets.\n * Presets are reusable encoding configurations that define all video/audio settings.\n *\n * @generated from service transcodely.v1.PresetService\n */\nexport const PresetService = {\n typeName: \"transcodely.v1.PresetService\",\n methods: {\n /**\n * Create a new custom preset.\n *\n * @generated from rpc transcodely.v1.PresetService.Create\n */\n create: {\n name: \"Create\",\n I: CreatePresetRequest,\n O: CreatePresetResponse,\n kind: MethodKind.Unary,\n },\n /**\n * Get a preset by ID.\n *\n * @generated from rpc transcodely.v1.PresetService.Get\n */\n get: {\n name: \"Get\",\n I: GetPresetRequest,\n O: GetPresetResponse,\n kind: MethodKind.Unary,\n },\n /**\n * Get a preset by slug.\n *\n * @generated from rpc transcodely.v1.PresetService.GetBySlug\n */\n getBySlug: {\n name: \"GetBySlug\",\n I: GetPresetBySlugRequest,\n O: GetPresetBySlugResponse,\n kind: MethodKind.Unary,\n },\n /**\n * List presets (system + custom for the app).\n *\n * @generated from rpc transcodely.v1.PresetService.List\n */\n list: {\n name: \"List\",\n I: ListPresetsRequest,\n O: ListPresetsResponse,\n kind: MethodKind.Unary,\n },\n /**\n * Update a custom preset.\n * Returns error if attempting to update a system preset.\n *\n * @generated from rpc transcodely.v1.PresetService.Update\n */\n update: {\n name: \"Update\",\n I: UpdatePresetRequest,\n O: UpdatePresetResponse,\n kind: MethodKind.Unary,\n },\n /**\n * Duplicate a preset (system or custom) as a new custom preset.\n *\n * @generated from rpc transcodely.v1.PresetService.Duplicate\n */\n duplicate: {\n name: \"Duplicate\",\n I: DuplicatePresetRequest,\n O: DuplicatePresetResponse,\n kind: MethodKind.Unary,\n },\n /**\n * Archive (soft-delete) a custom preset.\n * Returns error if attempting to archive a system preset.\n *\n * @generated from rpc transcodely.v1.PresetService.Archive\n */\n archive: {\n name: \"Archive\",\n I: ArchivePresetRequest,\n O: ArchivePresetResponse,\n kind: MethodKind.Unary,\n },\n }\n} as const;\n\n","import type { PartialMessage } from \"@bufbuild/protobuf\";\n\nimport { PresetService } from \"../gen/transcodely/v1/preset_connect.js\";\nimport {\n ArchivePresetRequest,\n CreatePresetRequest,\n DuplicatePresetRequest,\n GetPresetBySlugRequest,\n GetPresetRequest,\n ListPresetsRequest,\n type Preset,\n UpdatePresetRequest,\n} from \"../gen/transcodely/v1/preset_pb.js\";\nimport { PaginationRequest } from \"../gen/transcodely/v1/common_pb.js\";\n\nimport { Page } from \"../pagination.js\";\nimport type { CallOptions, Transport } from \"../transport/transport.js\";\n\nexport class Presets {\n constructor(private readonly transport: Transport) {}\n\n async create(req: PartialMessage<CreatePresetRequest>, opts?: CallOptions): Promise<Preset> {\n const res = await this.transport.unary(\n PresetService,\n PresetService.methods.create,\n new CreatePresetRequest(req),\n opts,\n );\n return res.preset!;\n }\n\n async get(id: string, opts?: CallOptions): Promise<Preset> {\n const res = await this.transport.unary(\n PresetService,\n PresetService.methods.get,\n new GetPresetRequest({ id }),\n opts,\n );\n return res.preset!;\n }\n\n async getBySlug(slug: string, opts?: CallOptions): Promise<Preset> {\n const res = await this.transport.unary(\n PresetService,\n PresetService.methods.getBySlug,\n new GetPresetBySlugRequest({ slug }),\n opts,\n );\n return res.preset!;\n }\n\n list(req: PartialMessage<ListPresetsRequest> = {}, opts?: CallOptions): Page<Preset> {\n return new Page<Preset>(async (cursor) => {\n const proto = new ListPresetsRequest(req);\n if (cursor !== undefined) {\n proto.pagination = new PaginationRequest({\n ...(req.pagination ?? {}),\n cursor,\n });\n }\n const res = await this.transport.unary(\n PresetService,\n PresetService.methods.list,\n proto,\n opts,\n );\n return { items: res.presets, nextCursor: res.pagination?.nextCursor || undefined };\n });\n }\n\n async update(req: PartialMessage<UpdatePresetRequest>, opts?: CallOptions): Promise<Preset> {\n const res = await this.transport.unary(\n PresetService,\n PresetService.methods.update,\n new UpdatePresetRequest(req),\n opts,\n );\n return res.preset!;\n }\n\n async duplicate(req: PartialMessage<DuplicatePresetRequest>, opts?: CallOptions): Promise<Preset> {\n const res = await this.transport.unary(\n PresetService,\n PresetService.methods.duplicate,\n new DuplicatePresetRequest(req),\n opts,\n );\n return res.preset!;\n }\n\n async archive(id: string, opts?: CallOptions): Promise<Preset> {\n const res = await this.transport.unary(\n PresetService,\n PresetService.methods.archive,\n new ArchivePresetRequest({ id }),\n opts,\n );\n return res.preset!;\n }\n}\n","// User service for managing user profiles and authentication.\n\n// @generated by protoc-gen-es v1.10.0 with parameter \"target=ts,import_extension=.js\"\n// @generated from file transcodely/v1/user.proto (package transcodely.v1, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from \"@bufbuild/protobuf\";\nimport { Message, proto3, Timestamp } from \"@bufbuild/protobuf\";\nimport { MembershipRole } from \"./membership_pb.js\";\nimport { PaginationRequest, PaginationResponse } from \"./common_pb.js\";\n\n/**\n * User account status.\n *\n * @generated from enum transcodely.v1.UserStatus\n */\nexport enum UserStatus {\n /**\n * Default value, should not be used.\n *\n * @generated from enum value: USER_STATUS_UNSPECIFIED = 0;\n */\n UNSPECIFIED = 0,\n\n /**\n * Normal operation.\n *\n * @generated from enum value: USER_STATUS_ACTIVE = 1;\n */\n ACTIVE = 1,\n\n /**\n * Account is suspended by admin.\n * API requests return 403.\n *\n * @generated from enum value: USER_STATUS_SUSPENDED = 2;\n */\n SUSPENDED = 2,\n\n /**\n * Account is soft-deleted.\n * No access allowed.\n *\n * @generated from enum value: USER_STATUS_DELETED = 3;\n */\n DELETED = 3,\n}\n// Retrieve enum metadata with: proto3.getEnumType(UserStatus)\nproto3.util.setEnumType(UserStatus, \"transcodely.v1.UserStatus\", [\n { no: 0, name: \"USER_STATUS_UNSPECIFIED\" },\n { no: 1, name: \"USER_STATUS_ACTIVE\" },\n { no: 2, name: \"USER_STATUS_SUSPENDED\" },\n { no: 3, name: \"USER_STATUS_DELETED\" },\n]);\n\n/**\n * User approval status. Until we have a payment gate, every new sign-up is\n * held in PENDING and must be approved by a staff member before they can use\n * the platform.\n *\n * @generated from enum transcodely.v1.UserApprovalStatus\n */\nexport enum UserApprovalStatus {\n /**\n * @generated from enum value: USER_APPROVAL_STATUS_UNSPECIFIED = 0;\n */\n UNSPECIFIED = 0,\n\n /**\n * @generated from enum value: USER_APPROVAL_STATUS_PENDING = 1;\n */\n PENDING = 1,\n\n /**\n * @generated from enum value: USER_APPROVAL_STATUS_APPROVED = 2;\n */\n APPROVED = 2,\n\n /**\n * @generated from enum value: USER_APPROVAL_STATUS_REJECTED = 3;\n */\n REJECTED = 3,\n}\n// Retrieve enum metadata with: proto3.getEnumType(UserApprovalStatus)\nproto3.util.setEnumType(UserApprovalStatus, \"transcodely.v1.UserApprovalStatus\", [\n { no: 0, name: \"USER_APPROVAL_STATUS_UNSPECIFIED\" },\n { no: 1, name: \"USER_APPROVAL_STATUS_PENDING\" },\n { no: 2, name: \"USER_APPROVAL_STATUS_APPROVED\" },\n { no: 3, name: \"USER_APPROVAL_STATUS_REJECTED\" },\n]);\n\n/**\n * A user authenticated via WorkOS.\n *\n * @generated from message transcodely.v1.User\n */\nexport class User extends Message<User> {\n /**\n * Unique user identifier (e.g., \"usr_a1b2c3d4e5\").\n * This is our internal ID, not the WorkOS ID.\n *\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n /**\n * User's email address.\n *\n * @generated from field: string email = 2;\n */\n email = \"\";\n\n /**\n * Whether the email is verified.\n *\n * @generated from field: bool email_verified = 3;\n */\n emailVerified = false;\n\n /**\n * User's first name.\n *\n * @generated from field: string first_name = 4;\n */\n firstName = \"\";\n\n /**\n * User's last name.\n *\n * @generated from field: string last_name = 5;\n */\n lastName = \"\";\n\n /**\n * URL to the user's profile picture.\n *\n * @generated from field: optional string profile_picture_url = 6;\n */\n profilePictureUrl?: string;\n\n /**\n * User account status.\n *\n * @generated from field: transcodely.v1.UserStatus status = 7;\n */\n status = UserStatus.UNSPECIFIED;\n\n /**\n * When the user last logged in.\n *\n * @generated from field: optional google.protobuf.Timestamp last_login_at = 8;\n */\n lastLoginAt?: Timestamp;\n\n /**\n * When the user was created (first login).\n *\n * @generated from field: google.protobuf.Timestamp created_at = 9;\n */\n createdAt?: Timestamp;\n\n /**\n * When the user was last updated.\n *\n * @generated from field: google.protobuf.Timestamp updated_at = 10;\n */\n updatedAt?: Timestamp;\n\n /**\n * Whether this user has been approved by a staff member.\n * New sign-ups default to PENDING.\n *\n * @generated from field: transcodely.v1.UserApprovalStatus approval_status = 11;\n */\n approvalStatus = UserApprovalStatus.UNSPECIFIED;\n\n /**\n * When approval was decided (set when status flipped from PENDING).\n *\n * @generated from field: optional google.protobuf.Timestamp approval_decided_at = 12;\n */\n approvalDecidedAt?: Timestamp;\n\n /**\n * The staff member's user_id who decided approval.\n *\n * @generated from field: optional string approval_decided_by_user_id = 13;\n */\n approvalDecidedByUserId?: string;\n\n constructor(data?: PartialMessage<User>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.User\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"email\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"email_verified\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n { no: 4, name: \"first_name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 5, name: \"last_name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 6, name: \"profile_picture_url\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 7, name: \"status\", kind: \"enum\", T: proto3.getEnumType(UserStatus) },\n { no: 8, name: \"last_login_at\", kind: \"message\", T: Timestamp, opt: true },\n { no: 9, name: \"created_at\", kind: \"message\", T: Timestamp },\n { no: 10, name: \"updated_at\", kind: \"message\", T: Timestamp },\n { no: 11, name: \"approval_status\", kind: \"enum\", T: proto3.getEnumType(UserApprovalStatus) },\n { no: 12, name: \"approval_decided_at\", kind: \"message\", T: Timestamp, opt: true },\n { no: 13, name: \"approval_decided_by_user_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): User {\n return new User().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): User {\n return new User().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): User {\n return new User().fromJsonString(jsonString, options);\n }\n\n static equals(a: User | PlainMessage<User> | undefined, b: User | PlainMessage<User> | undefined): boolean {\n return proto3.util.equals(User, a, b);\n }\n}\n\n/**\n * User with their organization memberships.\n *\n * @generated from message transcodely.v1.UserWithOrganizations\n */\nexport class UserWithOrganizations extends Message<UserWithOrganizations> {\n /**\n * The user profile.\n *\n * @generated from field: transcodely.v1.User user = 1;\n */\n user?: User;\n\n /**\n * Organizations the user belongs to with their roles.\n *\n * @generated from field: repeated transcodely.v1.UserOrganization organizations = 2;\n */\n organizations: UserOrganization[] = [];\n\n constructor(data?: PartialMessage<UserWithOrganizations>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.UserWithOrganizations\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"user\", kind: \"message\", T: User },\n { no: 2, name: \"organizations\", kind: \"message\", T: UserOrganization, repeated: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): UserWithOrganizations {\n return new UserWithOrganizations().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): UserWithOrganizations {\n return new UserWithOrganizations().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): UserWithOrganizations {\n return new UserWithOrganizations().fromJsonString(jsonString, options);\n }\n\n static equals(a: UserWithOrganizations | PlainMessage<UserWithOrganizations> | undefined, b: UserWithOrganizations | PlainMessage<UserWithOrganizations> | undefined): boolean {\n return proto3.util.equals(UserWithOrganizations, a, b);\n }\n}\n\n/**\n * Summary of a user's membership in an organization.\n *\n * @generated from message transcodely.v1.UserOrganization\n */\nexport class UserOrganization extends Message<UserOrganization> {\n /**\n * Organization ID.\n *\n * @generated from field: string org_id = 1;\n */\n orgId = \"\";\n\n /**\n * Organization slug.\n *\n * @generated from field: string org_slug = 2;\n */\n orgSlug = \"\";\n\n /**\n * Organization display name.\n *\n * @generated from field: string org_name = 3;\n */\n orgName = \"\";\n\n /**\n * User's role in this organization.\n *\n * @generated from field: transcodely.v1.MembershipRole role = 4;\n */\n role = MembershipRole.UNSPECIFIED;\n\n /**\n * Whether this membership is active.\n *\n * @generated from field: bool is_active = 5;\n */\n isActive = false;\n\n constructor(data?: PartialMessage<UserOrganization>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.UserOrganization\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"org_id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 2, name: \"org_slug\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 3, name: \"org_name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n { no: 4, name: \"role\", kind: \"enum\", T: proto3.getEnumType(MembershipRole) },\n { no: 5, name: \"is_active\", kind: \"scalar\", T: 8 /* ScalarType.BOOL */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): UserOrganization {\n return new UserOrganization().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): UserOrganization {\n return new UserOrganization().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): UserOrganization {\n return new UserOrganization().fromJsonString(jsonString, options);\n }\n\n static equals(a: UserOrganization | PlainMessage<UserOrganization> | undefined, b: UserOrganization | PlainMessage<UserOrganization> | undefined): boolean {\n return proto3.util.equals(UserOrganization, a, b);\n }\n}\n\n/**\n * Request to get the current user.\n *\n * No parameters required - uses authenticated user context.\n *\n * @generated from message transcodely.v1.GetMeRequest\n */\nexport class GetMeRequest extends Message<GetMeRequest> {\n constructor(data?: PartialMessage<GetMeRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.GetMeRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetMeRequest {\n return new GetMeRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetMeRequest {\n return new GetMeRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetMeRequest {\n return new GetMeRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: GetMeRequest | PlainMessage<GetMeRequest> | undefined, b: GetMeRequest | PlainMessage<GetMeRequest> | undefined): boolean {\n return proto3.util.equals(GetMeRequest, a, b);\n }\n}\n\n/**\n * Response from getting the current user.\n *\n * @generated from message transcodely.v1.GetMeResponse\n */\nexport class GetMeResponse extends Message<GetMeResponse> {\n /**\n * The current user with their organizations.\n *\n * @generated from field: transcodely.v1.UserWithOrganizations user = 1;\n */\n user?: UserWithOrganizations;\n\n constructor(data?: PartialMessage<GetMeResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.GetMeResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"user\", kind: \"message\", T: UserWithOrganizations },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetMeResponse {\n return new GetMeResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetMeResponse {\n return new GetMeResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetMeResponse {\n return new GetMeResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: GetMeResponse | PlainMessage<GetMeResponse> | undefined, b: GetMeResponse | PlainMessage<GetMeResponse> | undefined): boolean {\n return proto3.util.equals(GetMeResponse, a, b);\n }\n}\n\n/**\n * Request to get a user by ID.\n *\n * @generated from message transcodely.v1.GetUserRequest\n */\nexport class GetUserRequest extends Message<GetUserRequest> {\n /**\n * User ID.\n *\n * @generated from field: string id = 1;\n */\n id = \"\";\n\n constructor(data?: PartialMessage<GetUserRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.GetUserRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"id\", kind: \"scalar\", T: 9 /* ScalarType.STRING */ },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetUserRequest {\n return new GetUserRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetUserRequest {\n return new GetUserRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetUserRequest {\n return new GetUserRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: GetUserRequest | PlainMessage<GetUserRequest> | undefined, b: GetUserRequest | PlainMessage<GetUserRequest> | undefined): boolean {\n return proto3.util.equals(GetUserRequest, a, b);\n }\n}\n\n/**\n * Response from getting a user.\n *\n * @generated from message transcodely.v1.GetUserResponse\n */\nexport class GetUserResponse extends Message<GetUserResponse> {\n /**\n * The requested user.\n *\n * @generated from field: transcodely.v1.User user = 1;\n */\n user?: User;\n\n constructor(data?: PartialMessage<GetUserResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.GetUserResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"user\", kind: \"message\", T: User },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetUserResponse {\n return new GetUserResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetUserResponse {\n return new GetUserResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetUserResponse {\n return new GetUserResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: GetUserResponse | PlainMessage<GetUserResponse> | undefined, b: GetUserResponse | PlainMessage<GetUserResponse> | undefined): boolean {\n return proto3.util.equals(GetUserResponse, a, b);\n }\n}\n\n/**\n * Request to update the current user's profile.\n *\n * @generated from message transcodely.v1.UpdateMeRequest\n */\nexport class UpdateMeRequest extends Message<UpdateMeRequest> {\n /**\n * New first name (if provided).\n *\n * @generated from field: optional string first_name = 1;\n */\n firstName?: string;\n\n /**\n * New last name (if provided).\n *\n * @generated from field: optional string last_name = 2;\n */\n lastName?: string;\n\n constructor(data?: PartialMessage<UpdateMeRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.UpdateMeRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"first_name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n { no: 2, name: \"last_name\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, opt: true },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): UpdateMeRequest {\n return new UpdateMeRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): UpdateMeRequest {\n return new UpdateMeRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): UpdateMeRequest {\n return new UpdateMeRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: UpdateMeRequest | PlainMessage<UpdateMeRequest> | undefined, b: UpdateMeRequest | PlainMessage<UpdateMeRequest> | undefined): boolean {\n return proto3.util.equals(UpdateMeRequest, a, b);\n }\n}\n\n/**\n * Response from updating the current user.\n *\n * @generated from message transcodely.v1.UpdateMeResponse\n */\nexport class UpdateMeResponse extends Message<UpdateMeResponse> {\n /**\n * The updated user.\n *\n * @generated from field: transcodely.v1.User user = 1;\n */\n user?: User;\n\n constructor(data?: PartialMessage<UpdateMeResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.UpdateMeResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"user\", kind: \"message\", T: User },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): UpdateMeResponse {\n return new UpdateMeResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): UpdateMeResponse {\n return new UpdateMeResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): UpdateMeResponse {\n return new UpdateMeResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: UpdateMeResponse | PlainMessage<UpdateMeResponse> | undefined, b: UpdateMeResponse | PlainMessage<UpdateMeResponse> | undefined): boolean {\n return proto3.util.equals(UpdateMeResponse, a, b);\n }\n}\n\n/**\n * Request to list users in an organization.\n *\n * @generated from message transcodely.v1.ListUsersRequest\n */\nexport class ListUsersRequest extends Message<ListUsersRequest> {\n /**\n * Filter by status.\n *\n * @generated from field: optional transcodely.v1.UserStatus status = 1;\n */\n status?: UserStatus;\n\n /**\n * Pagination parameters.\n *\n * @generated from field: transcodely.v1.PaginationRequest pagination = 2;\n */\n pagination?: PaginationRequest;\n\n constructor(data?: PartialMessage<ListUsersRequest>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.ListUsersRequest\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"status\", kind: \"enum\", T: proto3.getEnumType(UserStatus), opt: true },\n { no: 2, name: \"pagination\", kind: \"message\", T: PaginationRequest },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListUsersRequest {\n return new ListUsersRequest().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListUsersRequest {\n return new ListUsersRequest().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListUsersRequest {\n return new ListUsersRequest().fromJsonString(jsonString, options);\n }\n\n static equals(a: ListUsersRequest | PlainMessage<ListUsersRequest> | undefined, b: ListUsersRequest | PlainMessage<ListUsersRequest> | undefined): boolean {\n return proto3.util.equals(ListUsersRequest, a, b);\n }\n}\n\n/**\n * Response from listing users.\n *\n * @generated from message transcodely.v1.ListUsersResponse\n */\nexport class ListUsersResponse extends Message<ListUsersResponse> {\n /**\n * List of users.\n *\n * @generated from field: repeated transcodely.v1.User users = 1;\n */\n users: User[] = [];\n\n /**\n * Pagination metadata.\n *\n * @generated from field: transcodely.v1.PaginationResponse pagination = 2;\n */\n pagination?: PaginationResponse;\n\n constructor(data?: PartialMessage<ListUsersResponse>) {\n super();\n proto3.util.initPartial(data, this);\n }\n\n static readonly runtime: typeof proto3 = proto3;\n static readonly typeName = \"transcodely.v1.ListUsersResponse\";\n static readonly fields: FieldList = proto3.util.newFieldList(() => [\n { no: 1, name: \"users\", kind: \"message\", T: User, repeated: true },\n { no: 2, name: \"pagination\", kind: \"message\", T: PaginationResponse },\n ]);\n\n static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListUsersResponse {\n return new ListUsersResponse().fromBinary(bytes, options);\n }\n\n static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListUsersResponse {\n return new ListUsersResponse().fromJson(jsonValue, options);\n }\n\n static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListUsersResponse {\n return new ListUsersResponse().fromJsonString(jsonString, options);\n }\n\n static equals(a: ListUsersResponse | PlainMessage<ListUsersResponse> | undefined, b: ListUsersResponse | PlainMessage<ListUsersResponse> | undefined): boolean {\n return proto3.util.equals(ListUsersResponse, a, b);\n }\n}\n\n","// User service for managing user profiles and authentication.\n\n// @generated by protoc-gen-connect-es v1.6.1 with parameter \"target=ts,import_extension=.js\"\n// @generated from file transcodely/v1/user.proto (package transcodely.v1, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport { GetMeRequest, GetMeResponse, GetUserRequest, GetUserResponse, ListUsersRequest, ListUsersResponse, UpdateMeRequest, UpdateMeResponse } from \"./user_pb.js\";\nimport { MethodKind } from \"@bufbuild/protobuf\";\n\n/**\n * UserService manages user profiles and authentication context.\n * Users are authenticated via WorkOS JWTs and provisioned JIT on first login.\n *\n * @generated from service transcodely.v1.UserService\n */\nexport const UserService = {\n typeName: \"transcodely.v1.UserService\",\n methods: {\n /**\n * Get the currently authenticated user.\n * Returns the user profile along with their organization memberships.\n * Does not require X-Organization-ID header.\n *\n * @generated from rpc transcodely.v1.UserService.GetMe\n */\n getMe: {\n name: \"GetMe\",\n I: GetMeRequest,\n O: GetMeResponse,\n kind: MethodKind.Unary,\n },\n /**\n * Get a user by ID.\n * Requires admin permission or the user to be requesting their own profile.\n *\n * @generated from rpc transcodely.v1.UserService.Get\n */\n get: {\n name: \"Get\",\n I: GetUserRequest,\n O: GetUserResponse,\n kind: MethodKind.Unary,\n },\n /**\n * Update the currently authenticated user's profile.\n * Note: Email and core profile info are synced from WorkOS, so only\n * display preferences can be updated here.\n * Does not require X-Organization-ID header.\n *\n * @generated from rpc transcodely.v1.UserService.UpdateMe\n */\n updateMe: {\n name: \"UpdateMe\",\n I: UpdateMeRequest,\n O: UpdateMeResponse,\n kind: MethodKind.Unary,\n },\n /**\n * List users in an organization.\n * Requires admin permission on the organization.\n *\n * @generated from rpc transcodely.v1.UserService.List\n */\n list: {\n name: \"List\",\n I: ListUsersRequest,\n O: ListUsersResponse,\n kind: MethodKind.Unary,\n },\n }\n} as const;\n\n","import type { PartialMessage } from \"@bufbuild/protobuf\";\n\nimport { UserService } from \"../gen/transcodely/v1/user_connect.js\";\nimport {\n GetMeRequest,\n GetUserRequest,\n ListUsersRequest,\n UpdateMeRequest,\n type User,\n type UserWithOrganizations,\n} from \"../gen/transcodely/v1/user_pb.js\";\nimport { PaginationRequest } from \"../gen/transcodely/v1/common_pb.js\";\n\nimport { Page } from \"../pagination.js\";\nimport type { CallOptions, Transport } from \"../transport/transport.js\";\n\nexport class Users {\n constructor(private readonly transport: Transport) {}\n\n /** Returns the authenticated user enriched with their org memberships. */\n async getMe(opts?: CallOptions): Promise<UserWithOrganizations> {\n const res = await this.transport.unary(\n UserService,\n UserService.methods.getMe,\n new GetMeRequest(),\n opts,\n );\n return res.user!;\n }\n\n async updateMe(req: PartialMessage<UpdateMeRequest>, opts?: CallOptions): Promise<User> {\n const res = await this.transport.unary(\n UserService,\n UserService.methods.updateMe,\n new UpdateMeRequest(req),\n opts,\n );\n return res.user!;\n }\n\n async get(id: string, opts?: CallOptions): Promise<User> {\n const res = await this.transport.unary(\n UserService,\n UserService.methods.get,\n new GetUserRequest({ id }),\n opts,\n );\n return res.user!;\n }\n\n list(req: PartialMessage<ListUsersRequest> = {}, opts?: CallOptions): Page<User> {\n return new Page<User>(async (cursor) => {\n const proto = new ListUsersRequest(req);\n if (cursor !== undefined) {\n proto.pagination = new PaginationRequest({\n ...(req.pagination ?? {}),\n cursor,\n });\n }\n const res = await this.transport.unary(\n UserService,\n UserService.methods.list,\n proto,\n opts,\n );\n return { items: res.users, nextCursor: res.pagination?.nextCursor || undefined };\n });\n }\n}\n","// Video service for video hosting and delivery.\n// Videos represent hosted media assets with playback, storage tracking, and usage metering.\n\n// @generated by protoc-gen-connect-es v1.6.1 with parameter \"target=ts,import_extension=.js\"\n// @generated from file transcodely/v1/video.proto (package transcodely.v1, syntax proto3)\n/* eslint-disable */\n// @ts-nocheck\n\nimport { AbortMultipartUploadRequest, AbortMultipartUploadResponse, CompleteMultipartUploadRequest, CompleteMultipartUploadResponse, CompleteUploadRequest, CompleteUploadResponse, CreateMultipartUploadRequest, CreateMultipartUploadResponse, CreateUploadRequest, CreateUploadResponse, DeleteVideoRequest, DeleteVideoResponse, GetUploadPartUrlsRequest, GetUploadPartUrlsResponse, GetUsageRequest, GetUsageResponse, GetVideoRequest, GetVideoResponse, ListVideosRequest, ListVideosResponse, UpdateVideoRequest, UpdateVideoResponse, WatchVideoRequest, WatchVideoResponse } from \"./video_pb.js\";\nimport { MethodKind } from \"@bufbuild/protobuf\";\n\n/**\n * VideoService manages hosted video assets with upload, playback, and usage tracking.\n *\n * @generated from service transcodely.v1.VideoService\n */\nexport const VideoService = {\n typeName: \"transcodely.v1.VideoService\",\n methods: {\n /**\n * Create a presigned upload URL for direct browser/client upload.\n * Returns a Video in \"uploading\" status and a time-limited upload URL.\n *\n * @generated from rpc transcodely.v1.VideoService.CreateUpload\n */\n createUpload: {\n name: \"CreateUpload\",\n I: CreateUploadRequest,\n O: CreateUploadResponse,\n kind: MethodKind.Unary,\n },\n /**\n * Signal that a client-side upload has completed.\n * Triggers processing (probe + transcode) for the uploaded file.\n *\n * @generated from rpc transcodely.v1.VideoService.CompleteUpload\n */\n completeUpload: {\n name: \"CompleteUpload\",\n I: CompleteUploadRequest,\n O: CompleteUploadResponse,\n kind: MethodKind.Unary,\n },\n /**\n * Create a multipart upload for large files (up to 5GB).\n * Returns a Video in \"uploading\" status, an S3 upload_id, and presigned\n * URLs for the first batch of parts (up to 50).\n *\n * @generated from rpc transcodely.v1.VideoService.CreateMultipartUpload\n */\n createMultipartUpload: {\n name: \"CreateMultipartUpload\",\n I: CreateMultipartUploadRequest,\n O: CreateMultipartUploadResponse,\n kind: MethodKind.Unary,\n },\n /**\n * Get fresh presigned URLs for specific part numbers of an in-progress\n * multipart upload. Use this to fetch URLs in batches or refresh expired ones.\n *\n * @generated from rpc transcodely.v1.VideoService.GetUploadPartUrls\n */\n getUploadPartUrls: {\n name: \"GetUploadPartUrls\",\n I: GetUploadPartUrlsRequest,\n O: GetUploadPartUrlsResponse,\n kind: MethodKind.Unary,\n },\n /**\n * Complete a multipart upload by providing ETags from all uploaded parts.\n * Assembles the parts in S3, then triggers processing (probe + transcode).\n *\n * @generated from rpc transcodely.v1.VideoService.CompleteMultipartUpload\n */\n completeMultipartUpload: {\n name: \"CompleteMultipartUpload\",\n I: CompleteMultipartUploadRequest,\n O: CompleteMultipartUploadResponse,\n kind: MethodKind.Unary,\n },\n /**\n * Abort a multipart upload, cleaning up S3 parts and deleting the video record.\n *\n * @generated from rpc transcodely.v1.VideoService.AbortMultipartUpload\n */\n abortMultipartUpload: {\n name: \"AbortMultipartUpload\",\n I: AbortMultipartUploadRequest,\n O: AbortMultipartUploadResponse,\n kind: MethodKind.Unary,\n },\n /**\n * Get a video by ID.\n *\n * @generated from rpc transcodely.v1.VideoService.Get\n */\n get: {\n name: \"Get\",\n I: GetVideoRequest,\n O: GetVideoResponse,\n kind: MethodKind.Unary,\n },\n /**\n * List videos with optional filtering.\n *\n * @generated from rpc transcodely.v1.VideoService.List\n */\n list: {\n name: \"List\",\n I: ListVideosRequest,\n O: ListVideosResponse,\n kind: MethodKind.Unary,\n },\n /**\n * Update a video's mutable fields (title, description, tags, visibility).\n *\n * @generated from rpc transcodely.v1.VideoService.Update\n */\n update: {\n name: \"Update\",\n I: UpdateVideoRequest,\n O: UpdateVideoResponse,\n kind: MethodKind.Unary,\n },\n /**\n * Delete a video and all associated storage.\n *\n * @generated from rpc transcodely.v1.VideoService.Delete\n */\n delete: {\n name: \"Delete\",\n I: DeleteVideoRequest,\n O: DeleteVideoResponse,\n kind: MethodKind.Unary,\n },\n /**\n * Watch a video for real-time status updates. Streams the current state immediately,\n * then pushes updates as the video progresses through processing.\n * Stream closes automatically when the video reaches a terminal state.\n *\n * @generated from rpc transcodely.v1.VideoService.Watch\n */\n watch: {\n name: \"Watch\",\n I: WatchVideoRequest,\n O: WatchVideoResponse,\n kind: MethodKind.ServerStreaming,\n },\n /**\n * Get usage summary for the current billing period or a specific month.\n *\n * @generated from rpc transcodely.v1.VideoService.GetUsage\n */\n getUsage: {\n name: \"GetUsage\",\n I: GetUsageRequest,\n O: GetUsageResponse,\n kind: MethodKind.Unary,\n },\n }\n} as const;\n\n","import type { PartialMessage } from \"@bufbuild/protobuf\";\n\nimport { VideoService } from \"../gen/transcodely/v1/video_connect.js\";\nimport {\n AbortMultipartUploadRequest,\n CompleteMultipartUploadRequest,\n CompleteUploadRequest,\n CreateMultipartUploadRequest,\n CreateUploadRequest,\n DeleteVideoRequest,\n GetUploadPartUrlsRequest,\n GetUsageRequest,\n GetVideoRequest,\n ListVideosRequest,\n UpdateVideoRequest,\n type Video,\n WatchVideoRequest,\n type WatchVideoResponse,\n} from \"../gen/transcodely/v1/video_pb.js\";\n\nimport { Page } from \"../pagination.js\";\nimport { watch } from \"../streaming.js\";\nimport type { CallOptions, Transport } from \"../transport/transport.js\";\n\nexport class Videos {\n constructor(private readonly transport: Transport) {}\n\n createUpload(req: PartialMessage<CreateUploadRequest>, opts?: CallOptions) {\n return this.transport.unary(\n VideoService,\n VideoService.methods.createUpload,\n new CreateUploadRequest(req),\n opts,\n );\n }\n\n completeUpload(req: PartialMessage<CompleteUploadRequest>, opts?: CallOptions) {\n return this.transport.unary(\n VideoService,\n VideoService.methods.completeUpload,\n new CompleteUploadRequest(req),\n opts,\n );\n }\n\n createMultipartUpload(\n req: PartialMessage<CreateMultipartUploadRequest>,\n opts?: CallOptions,\n ) {\n return this.transport.unary(\n VideoService,\n VideoService.methods.createMultipartUpload,\n new CreateMultipartUploadRequest(req),\n opts,\n );\n }\n\n getUploadPartUrls(req: PartialMessage<GetUploadPartUrlsRequest>, opts?: CallOptions) {\n return this.transport.unary(\n VideoService,\n VideoService.methods.getUploadPartUrls,\n new GetUploadPartUrlsRequest(req),\n opts,\n );\n }\n\n completeMultipartUpload(\n req: PartialMessage<CompleteMultipartUploadRequest>,\n opts?: CallOptions,\n ) {\n return this.transport.unary(\n VideoService,\n VideoService.methods.completeMultipartUpload,\n new CompleteMultipartUploadRequest(req),\n opts,\n );\n }\n\n abortMultipartUpload(\n req: PartialMessage<AbortMultipartUploadRequest>,\n opts?: CallOptions,\n ) {\n return this.transport.unary(\n VideoService,\n VideoService.methods.abortMultipartUpload,\n new AbortMultipartUploadRequest(req),\n opts,\n );\n }\n\n async get(id: string, opts?: CallOptions): Promise<Video> {\n const res = await this.transport.unary(\n VideoService,\n VideoService.methods.get,\n new GetVideoRequest({ id }),\n opts,\n );\n return res.video!;\n }\n\n /** List videos. Uses `page_size` / `page_token` instead of standard pagination. */\n list(req: PartialMessage<ListVideosRequest> = {}, opts?: CallOptions): Page<Video> {\n return new Page<Video>(async (cursor) => {\n const proto = new ListVideosRequest(req);\n if (cursor !== undefined) proto.pageToken = cursor;\n const res = await this.transport.unary(\n VideoService,\n VideoService.methods.list,\n proto,\n opts,\n );\n return { items: res.videos, nextCursor: res.nextPageToken || undefined };\n });\n }\n\n async update(req: PartialMessage<UpdateVideoRequest>, opts?: CallOptions): Promise<Video> {\n const res = await this.transport.unary(\n VideoService,\n VideoService.methods.update,\n new UpdateVideoRequest(req),\n opts,\n );\n return res.video!;\n }\n\n async delete(id: string, opts?: CallOptions): Promise<void> {\n await this.transport.unary(\n VideoService,\n VideoService.methods.delete,\n new DeleteVideoRequest({ id }),\n opts,\n );\n }\n\n watch(\n id: string,\n opts: { signal?: AbortSignal; includeHeartbeats?: boolean } = {},\n ): AsyncIterable<WatchVideoResponse> {\n return watch<WatchVideoResponse>(\n (signal) =>\n this.transport.stream(\n VideoService,\n VideoService.methods.watch,\n new WatchVideoRequest({ id }),\n { signal },\n ),\n {\n includeHeartbeats: opts.includeHeartbeats,\n signal: opts.signal,\n isHeartbeat: (event) => event.eventType === \"heartbeat\",\n },\n );\n }\n\n getUsage(req: PartialMessage<GetUsageRequest> = {}, opts?: CallOptions) {\n return this.transport.unary(\n VideoService,\n VideoService.methods.getUsage,\n new GetUsageRequest(req),\n opts,\n );\n }\n}\n","import type { PartialMessage } from \"@bufbuild/protobuf\";\n\nimport { PaginationRequest } from \"../gen/transcodely/v1/common_pb.js\";\nimport { WebhookService } from \"../gen/transcodely/v1/webhook_connect.js\";\nimport {\n CreateWebhookEndpointRequest,\n DeleteWebhookEndpointRequest,\n GetEndpointHealthRequest,\n type GetEndpointHealthResponse,\n ListWebhookDeliveriesRequest,\n ListWebhookEndpointsRequest,\n RetrieveWebhookEndpointRequest,\n RotateWebhookSecretRequest,\n SendTestWebhookRequest,\n UpdateWebhookEndpointRequest,\n type WebhookDelivery,\n type WebhookEndpoint,\n} from \"../gen/transcodely/v1/webhook_pb.js\";\nimport { Page } from \"../pagination.js\";\nimport type { CallOptions, Transport } from \"../transport/transport.js\";\n\n/**\n * Manage signed webhook endpoints, send synthetic test deliveries, and\n * inspect delivery history and health.\n *\n * Stripe parity: method names match the resource verbs (`create`,\n * `retrieve`, `update`, `delete`, `list`) without re-stating the\n * \"Webhook\" prefix already implied by the namespace.\n */\nexport class WebhookEndpoints {\n constructor(private readonly transport: Transport) {}\n\n async create(\n req: PartialMessage<CreateWebhookEndpointRequest>,\n opts?: CallOptions,\n ): Promise<WebhookEndpoint> {\n const res = await this.transport.unary(\n WebhookService,\n WebhookService.methods.createWebhookEndpoint,\n new CreateWebhookEndpointRequest(req),\n opts,\n );\n return res.endpoint!;\n }\n\n async retrieve(id: string, opts?: CallOptions): Promise<WebhookEndpoint> {\n const res = await this.transport.unary(\n WebhookService,\n WebhookService.methods.retrieveWebhookEndpoint,\n new RetrieveWebhookEndpointRequest({ id }),\n opts,\n );\n return res.endpoint!;\n }\n\n async update(\n req: PartialMessage<UpdateWebhookEndpointRequest>,\n opts?: CallOptions,\n ): Promise<WebhookEndpoint> {\n const res = await this.transport.unary(\n WebhookService,\n WebhookService.methods.updateWebhookEndpoint,\n new UpdateWebhookEndpointRequest(req),\n opts,\n );\n return res.endpoint!;\n }\n\n async delete(id: string, opts?: CallOptions): Promise<void> {\n await this.transport.unary(\n WebhookService,\n WebhookService.methods.deleteWebhookEndpoint,\n new DeleteWebhookEndpointRequest({ id }),\n opts,\n );\n }\n\n list(\n req: PartialMessage<ListWebhookEndpointsRequest>,\n opts?: CallOptions,\n ): Page<WebhookEndpoint> {\n return new Page<WebhookEndpoint>(async (cursor) => {\n const proto = new ListWebhookEndpointsRequest(req);\n if (cursor !== undefined) {\n proto.pagination = new PaginationRequest({\n ...(req.pagination ?? {}),\n cursor,\n });\n }\n const res = await this.transport.unary(\n WebhookService,\n WebhookService.methods.listWebhookEndpoints,\n proto,\n opts,\n );\n return { items: res.endpoints, nextCursor: res.pagination?.nextCursor || undefined };\n });\n }\n\n /**\n * Rotate the signing secret. The previous secret remains valid for 24 h\n * to drain in-flight deliveries. The returned endpoint includes the new\n * plain-text `secret` — this is the only response that exposes it.\n */\n async rotateSecret(id: string, opts?: CallOptions): Promise<WebhookEndpoint> {\n const res = await this.transport.unary(\n WebhookService,\n WebhookService.methods.rotateWebhookSecret,\n new RotateWebhookSecretRequest({ id }),\n opts,\n );\n return res.endpoint!;\n }\n\n /**\n * Send a synthetic test event to a single endpoint. The synthetic event\n * is invisible to `client.events.list` and never bumps `pending_webhooks`\n * on any other event. Rate-limited to 10/min per endpoint server-side.\n */\n async sendTest(\n endpointId: string,\n eventType: string,\n opts?: CallOptions,\n ): Promise<WebhookDelivery> {\n const res = await this.transport.unary(\n WebhookService,\n WebhookService.methods.sendTestWebhook,\n new SendTestWebhookRequest({ endpointId, eventType }),\n opts,\n );\n return res.delivery!;\n }\n\n /**\n * List delivery attempts. Filter by `endpointId` (deliveries for one\n * endpoint), `eventId` (deliveries for one event across all subscribers),\n * or both. At least one of the two is required server-side.\n */\n listDeliveries(\n req: PartialMessage<ListWebhookDeliveriesRequest>,\n opts?: CallOptions,\n ): Page<WebhookDelivery> {\n return new Page<WebhookDelivery>(async (cursor) => {\n const proto = new ListWebhookDeliveriesRequest(req);\n if (cursor !== undefined) {\n proto.pagination = new PaginationRequest({\n ...(req.pagination ?? {}),\n cursor,\n });\n }\n const res = await this.transport.unary(\n WebhookService,\n WebhookService.methods.listWebhookDeliveries,\n proto,\n opts,\n );\n return { items: res.deliveries, nextCursor: res.pagination?.nextCursor || undefined };\n });\n }\n\n /**\n * Aggregate delivery health for one endpoint over a rolling window.\n * Response is cached server-side for ~30 s.\n */\n async getHealth(\n endpointId: string,\n window?: \"24h\" | \"7d\" | \"30d\",\n opts?: CallOptions,\n ): Promise<GetEndpointHealthResponse> {\n return this.transport.unary(\n WebhookService,\n WebhookService.methods.getEndpointHealth,\n new GetEndpointHealthRequest({ endpointId, window }),\n opts,\n );\n }\n}\n","/**\n * Map a Connect-RPC error response (HTTP status + JSON body) to one of our\n * typed `TranscodelyError` subclasses.\n *\n * The Transcodely API returns Connect-style error bodies:\n * ```json\n * {\n * \"code\": \"invalid_argument\",\n * \"message\": \"human-readable explanation\",\n * \"details\": [{\n * \"type\": \"transcodely.v1.ErrorDetails\",\n * \"value\": \"...\",\n * \"debug\": {\n * \"code\": \"JOB_NOT_FOUND\",\n * \"message\": \"...\",\n * \"field_violations\": [{ \"field\": \"id\", \"description\": \"...\" }]\n * }\n * }]\n * }\n * ```\n */\n\nimport {\n APIConnectionError,\n APIError,\n AuthenticationError,\n ConflictError,\n InvalidRequestError,\n NotFoundError,\n PermissionError,\n PreconditionError,\n RateLimitError,\n type FieldViolation,\n type TranscodelyError,\n} from \"../errors.js\";\n\ninterface ConnectErrorBody {\n code?: string;\n message?: string;\n details?: Array<{\n type?: string;\n value?: string;\n debug?: {\n code?: string;\n message?: string;\n field_violations?: FieldViolation[];\n fieldViolations?: FieldViolation[];\n };\n }>;\n}\n\ninterface MapArgs {\n status: number;\n body: unknown;\n headers: Headers;\n}\n\nexport function mapHttpError({ status, body, headers }: MapArgs): TranscodelyError {\n const requestId = headers.get(\"x-request-id\") ?? undefined;\n const parsed = parseBody(body);\n const message = parsed.message ?? `HTTP ${status}`;\n const detail = parsed.details?.[0]?.debug;\n const code = detail?.code;\n const violations = detail?.field_violations ?? detail?.fieldViolations ?? [];\n const opts = {\n message,\n code,\n type: parsed.code,\n errors: violations,\n httpStatus: status,\n requestId,\n raw: body,\n };\n\n if (status === 401) return new AuthenticationError(opts);\n if (status === 403) return new PermissionError(opts);\n if (status === 404) return new NotFoundError(opts);\n if (status === 409) return new ConflictError(opts);\n if (status === 412) return new PreconditionError(opts);\n if (status === 422) return new InvalidRequestError(opts);\n if (status === 429) {\n const retry = headers.get(\"retry-after\");\n const retryAfterMs = retry ? Math.max(0, parseInt(retry, 10) * 1000) : undefined;\n return new RateLimitError({ ...opts, retryAfterMs });\n }\n if (status >= 500) return new APIError(opts);\n if (status >= 400) return new InvalidRequestError(opts);\n return new APIError(opts);\n}\n\nexport function connectionError(cause: unknown, message?: string): APIConnectionError {\n const msg =\n message ?? (cause instanceof Error ? cause.message : \"network request failed\");\n return new APIConnectionError({ message: msg, cause });\n}\n\nfunction parseBody(body: unknown): ConnectErrorBody {\n if (typeof body === \"string\") {\n try {\n return JSON.parse(body) as ConnectErrorBody;\n } catch {\n return { message: body };\n }\n }\n if (typeof body === \"object\" && body !== null) return body as ConnectErrorBody;\n return {};\n}\n","/**\n * Hand-rolled Connect-RPC HTTP transport.\n *\n * Why not @connectrpc/connect-node? Connect-ES doesn't expose a hook for\n * swapping the JSON codec, but Transcodely's wire format requires\n * snake_case + simplified-enum JSON. Owning the transport gives us control\n * end-to-end with ~200 LoC.\n *\n * Wire format reference:\n * - Unary: POST {baseUrl}/{service.fullName}/{method.name}\n * Content-Type: application/json\n * body: JSON-encoded request\n * - Server-streaming: same URL, Content-Type: application/connect+json\n * body: length-prefixed enveloped frames\n * stream ends with an end-stream frame (flag bit 0x02)\n */\n\nimport type { Message, MessageType } from \"@bufbuild/protobuf\";\nimport { MethodKind } from \"@bufbuild/protobuf\";\n\nimport { TranscodelyError } from \"../errors.js\";\nimport { API_VERSION, DEFAULT_BASE_URL, SDK_VERSION } from \"../version.js\";\n\nimport { deserialize, serialize } from \"../codec/json.js\";\nimport {\n connectionError,\n mapHttpError,\n} from \"./error-mapping.js\";\nimport {\n clientUserAgentJson,\n userAgent,\n uuidv4,\n} from \"./headers.js\";\n\nexport interface Service {\n typeName: string;\n methods: Record<\n string,\n {\n name: string;\n I: MessageType;\n O: MessageType;\n kind: MethodKind;\n }\n >;\n}\n\nexport interface TransportConfig {\n apiKey: string;\n baseUrl?: string;\n timeoutMs?: number;\n maxRetries?: number;\n apiVersion?: string;\n defaultHeaders?: Record<string, string>;\n fetchImpl?: typeof fetch;\n /** Logger called on each request lifecycle event (success or error). */\n logger?: (event: LogEvent) => void;\n}\n\nexport interface LogEvent {\n service: string;\n method: string;\n durationMs: number;\n attempt: number;\n status?: number;\n requestId?: string;\n error?: TranscodelyError;\n}\n\nexport interface CallOptions {\n /** Per-call timeout override (ms). */\n timeoutMs?: number;\n /** Per-call max retries override. */\n maxRetries?: number;\n /** AbortSignal to cancel an in-flight request or stream. */\n signal?: AbortSignal;\n /** Custom Idempotency-Key header (else SDK generates one for non-streaming writes). */\n idempotencyKey?: string;\n /** Per-call API version override. */\n apiVersion?: string;\n /** Extra headers to merge into the request. */\n headers?: Record<string, string>;\n}\n\nexport class Transport {\n readonly baseUrl: string;\n readonly apiKey: string;\n readonly timeoutMs: number;\n readonly maxRetries: number;\n readonly apiVersion: string;\n readonly defaultHeaders: Record<string, string>;\n readonly fetchImpl: typeof fetch;\n readonly logger: ((event: LogEvent) => void) | undefined;\n\n /** ID of the most recent successful (or failed) request, Stripe-style. */\n lastRequestId: string | undefined;\n\n constructor(cfg: TransportConfig) {\n if (!cfg.apiKey) throw new Error(\"Transcodely: apiKey is required\");\n this.apiKey = cfg.apiKey;\n this.baseUrl = (cfg.baseUrl ?? DEFAULT_BASE_URL).replace(/\\/+$/, \"\");\n this.timeoutMs = cfg.timeoutMs ?? 30_000;\n this.maxRetries = cfg.maxRetries ?? 3;\n this.apiVersion = cfg.apiVersion ?? API_VERSION;\n this.defaultHeaders = cfg.defaultHeaders ?? {};\n this.fetchImpl = cfg.fetchImpl ?? fetch.bind(globalThis);\n this.logger = cfg.logger;\n }\n\n /** Invoke a unary RPC and return the parsed response message. */\n async unary<I extends Message<I>, O extends Message<O>>(\n service: Service,\n method: { name: string; I: MessageType<I>; O: MessageType<O>; kind: MethodKind },\n request: I,\n opts: CallOptions = {},\n ): Promise<O> {\n if (method.kind !== MethodKind.Unary) {\n throw new Error(`unary() called for non-unary method ${method.name}`);\n }\n const url = `${this.baseUrl}/${service.typeName}/${method.name}`;\n const body = serialize(request, method.I);\n const isWrite = !method.name.startsWith(\"Get\") && !method.name.startsWith(\"List\") && method.name !== \"Watch\";\n const idempotencyKey = isWrite ? opts.idempotencyKey ?? uuidv4() : undefined;\n\n return this.withRetry(service.typeName, method.name, opts, async (attempt) => {\n const headers = this.buildHeaders(opts, \"application/json\", idempotencyKey);\n const ac = this.linkAbort(opts);\n const started = Date.now();\n let response: Response;\n try {\n response = await this.fetchImpl(url, {\n method: \"POST\",\n headers,\n body: body as unknown as BodyInit,\n signal: ac.signal,\n });\n } catch (err) {\n ac.cleanup();\n throw connectionError(err);\n }\n ac.cleanup();\n this.lastRequestId = response.headers.get(\"x-request-id\") ?? this.lastRequestId;\n this.emit({\n service: service.typeName,\n method: method.name,\n attempt,\n durationMs: Date.now() - started,\n status: response.status,\n requestId: this.lastRequestId,\n });\n const buf = new Uint8Array(await response.arrayBuffer());\n if (!response.ok) {\n const text = new TextDecoder().decode(buf);\n let body: unknown = text;\n try {\n body = JSON.parse(text);\n } catch {\n /* keep as text */\n }\n throw mapHttpError({ status: response.status, body, headers: response.headers });\n }\n return deserialize(buf, method.O);\n });\n }\n\n /** Invoke a server-streaming RPC and yield each response message. */\n async *stream<I extends Message<I>, O extends Message<O>>(\n service: Service,\n method: { name: string; I: MessageType<I>; O: MessageType<O>; kind: MethodKind },\n request: I,\n opts: CallOptions = {},\n ): AsyncIterable<O> {\n if (method.kind !== MethodKind.ServerStreaming) {\n throw new Error(`stream() called for non-streaming method ${method.name}`);\n }\n const url = `${this.baseUrl}/${service.typeName}/${method.name}`;\n const headers = this.buildHeaders(opts, \"application/connect+json\");\n const body = encodeEnvelope(0, serialize(request, method.I));\n const ac = this.linkAbort(opts);\n let response: Response;\n try {\n response = await this.fetchImpl(url, {\n method: \"POST\",\n headers,\n body: body as unknown as BodyInit,\n signal: ac.signal,\n });\n } catch (err) {\n ac.cleanup();\n throw connectionError(err);\n }\n this.lastRequestId = response.headers.get(\"x-request-id\") ?? this.lastRequestId;\n\n if (!response.ok) {\n ac.cleanup();\n const text = await response.text();\n let parsed: unknown = text;\n try {\n parsed = JSON.parse(text);\n } catch {\n /* keep */\n }\n throw mapHttpError({\n status: response.status,\n body: parsed,\n headers: response.headers,\n });\n }\n if (!response.body) {\n ac.cleanup();\n throw connectionError(new Error(\"server returned no body for streaming response\"));\n }\n try {\n for await (const frame of readEnvelopes(response.body)) {\n if ((frame.flags & 0x02) !== 0) {\n // End-stream frame: the payload is a JSON object that may contain `error`.\n const text = new TextDecoder().decode(frame.data);\n if (text.length === 0) return;\n let parsed: { error?: { code?: string; message?: string } } = {};\n try {\n parsed = JSON.parse(text);\n } catch {\n /* ignore */\n }\n if (parsed.error) {\n throw mapHttpError({\n status: 400,\n body: parsed.error,\n headers: response.headers,\n });\n }\n return;\n }\n yield deserialize(frame.data, method.O);\n }\n } finally {\n ac.cleanup();\n }\n }\n\n private buildHeaders(\n opts: CallOptions,\n contentType: string,\n idempotencyKey?: string,\n ): Headers {\n const h = new Headers();\n h.set(\"content-type\", contentType);\n h.set(\"connect-protocol-version\", \"1\");\n h.set(\"authorization\", `Bearer ${this.apiKey}`);\n h.set(\"user-agent\", userAgent());\n h.set(\"x-transcodely-client-user-agent\", clientUserAgentJson());\n h.set(\"transcodely-version\", opts.apiVersion ?? this.apiVersion);\n h.set(\"accept\", contentType);\n if (idempotencyKey) h.set(\"idempotency-key\", idempotencyKey);\n for (const [k, v] of Object.entries(this.defaultHeaders)) h.set(k, v);\n for (const [k, v] of Object.entries(opts.headers ?? {})) h.set(k, v);\n return h;\n }\n\n private linkAbort(opts: CallOptions): { signal: AbortSignal; cleanup: () => void } {\n const ac = new AbortController();\n const timeout = opts.timeoutMs ?? this.timeoutMs;\n const handles: Array<() => void> = [];\n if (timeout > 0) {\n const t = setTimeout(() => ac.abort(new Error(`request timed out after ${timeout}ms`)), timeout);\n handles.push(() => clearTimeout(t));\n }\n if (opts.signal) {\n const onAbort = () => ac.abort(opts.signal!.reason);\n if (opts.signal.aborted) ac.abort(opts.signal.reason);\n else opts.signal.addEventListener(\"abort\", onAbort);\n handles.push(() => opts.signal!.removeEventListener(\"abort\", onAbort));\n }\n return { signal: ac.signal, cleanup: () => handles.forEach((fn) => fn()) };\n }\n\n private emit(ev: LogEvent): void {\n if (this.logger) {\n try {\n this.logger(ev);\n } catch {\n /* never let logger errors break the request path */\n }\n }\n }\n\n private async withRetry<T>(\n service: string,\n method: string,\n opts: CallOptions,\n fn: (attempt: number) => Promise<T>,\n ): Promise<T> {\n const max = opts.maxRetries ?? this.maxRetries;\n let lastError: unknown;\n for (let attempt = 1; attempt <= max + 1; attempt++) {\n try {\n return await fn(attempt);\n } catch (err) {\n lastError = err;\n if (attempt > max || !isRetryable(err)) {\n if (err instanceof TranscodelyError) {\n this.emit({\n service,\n method,\n attempt,\n durationMs: 0,\n status: err.httpStatus,\n requestId: err.requestId,\n error: err,\n });\n }\n throw err;\n }\n await sleepBackoff(attempt, err);\n }\n }\n throw lastError;\n }\n}\n\nfunction isRetryable(err: unknown): boolean {\n if (!(err instanceof TranscodelyError)) return false;\n if (err.constructor.name === \"APIConnectionError\") return true;\n if (err.constructor.name === \"RateLimitError\") return true;\n if (err.httpStatus !== undefined && err.httpStatus >= 500) return true;\n return false;\n}\n\nasync function sleepBackoff(attempt: number, err: unknown): Promise<void> {\n if (err && typeof err === \"object\" && \"retryAfterMs\" in err) {\n const retry = (err as { retryAfterMs?: number }).retryAfterMs;\n if (typeof retry === \"number\" && retry >= 0) {\n await sleep(retry);\n return;\n }\n }\n const base = 250;\n const cap = 2000;\n const expo = Math.min(cap, base * 2 ** (attempt - 1));\n const jitter = expo * (0.5 + Math.random() * 0.5);\n await sleep(jitter);\n}\n\nfunction sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\n// ---------- Connect envelope frames (server-streaming) ----------\n\ninterface Frame {\n flags: number;\n data: Uint8Array;\n}\n\nfunction encodeEnvelope(flags: number, payload: Uint8Array): Uint8Array {\n const out = new Uint8Array(5 + payload.length);\n out[0] = flags & 0xff;\n const view = new DataView(out.buffer as ArrayBuffer);\n view.setUint32(1, payload.length, false);\n out.set(payload, 5);\n return out;\n}\n\nasync function* readEnvelopes(stream: ReadableStream<Uint8Array>): AsyncIterable<Frame> {\n const reader = stream.getReader();\n let buf: Uint8Array = new Uint8Array(0);\n try {\n while (true) {\n const { value, done } = await reader.read();\n if (value && value.length > 0) buf = concat(buf, value as Uint8Array);\n while (buf.length >= 5) {\n const flags = buf[0]!;\n const len = new DataView(buf.buffer as ArrayBuffer, buf.byteOffset + 1, 4).getUint32(0, false);\n if (buf.length < 5 + len) break;\n const data = buf.slice(5, 5 + len);\n buf = buf.slice(5 + len);\n yield { flags, data };\n }\n if (done) {\n if (buf.length > 0) {\n throw connectionError(new Error(\"stream ended with partial frame\"));\n }\n return;\n }\n }\n } finally {\n reader.releaseLock();\n }\n}\n\nfunction concat(a: Uint8Array, b: Uint8Array): Uint8Array {\n const out = new Uint8Array(a.length + b.length);\n out.set(a, 0);\n out.set(b, a.length);\n return out;\n}\n","import { createHmac, timingSafeEqual } from \"node:crypto\";\n\nimport { WebhookSignatureError, WebhookTimestampError } from \"../errors.js\";\n\n/** Default signature tolerance window in seconds (Stripe parity). */\nexport const DEFAULT_TOLERANCE_SECONDS = 300;\n\n/** HTTP header name carrying the signature (lower-cased for `Headers#get`). */\nexport const SIGNATURE_HEADER = \"transcodely-signature\";\n\n/**\n * HTTP header name carrying the event ID (`evt_…`). Useful as an\n * idempotency key for handlers that need to deduplicate redeliveries —\n * the same event ID is sent on every retry of the same event.\n */\nexport const EVENT_ID_HEADER = \"webhook-id\";\n\nexport interface VerifyOptions {\n /** Tolerance in seconds. Defaults to {@link DEFAULT_TOLERANCE_SECONDS}. */\n tolerance?: number;\n /** Clock override (unix seconds). Defaults to `Date.now() / 1000`. Useful for tests. */\n now?: () => number;\n}\n\ninterface ParsedHeader {\n timestamp: number;\n signatures: string[];\n}\n\n/**\n * Parse the `Transcodely-Signature` header. The header is a comma-separated\n * list of `key=value` pairs. `t` is the unix timestamp (seconds); each\n * `v1` entry is a hex-encoded HMAC-SHA-256. Unknown keys are ignored so\n * future scheme versions don't break older receivers.\n */\nfunction parseHeader(header: string): ParsedHeader {\n let timestamp: number | undefined;\n const signatures: string[] = [];\n for (const part of header.split(\",\")) {\n const eq = part.indexOf(\"=\");\n if (eq < 0) continue;\n const key = part.slice(0, eq).trim();\n const value = part.slice(eq + 1).trim();\n if (key === \"t\") {\n const n = Number(value);\n if (Number.isFinite(n) && Number.isInteger(n)) timestamp = n;\n } else if (key === \"v1\") {\n signatures.push(value);\n }\n }\n if (timestamp === undefined) {\n throw new WebhookSignatureError(\"Signature header is missing the timestamp (t=) component\");\n }\n if (signatures.length === 0) {\n throw new WebhookSignatureError(\"Signature header has no v1 entries\");\n }\n return { timestamp, signatures };\n}\n\n/** Constant-time compare of two hex strings. Returns `false` on length mismatch (no leak). */\nfunction safeHexEqual(a: string, b: string): boolean {\n if (a.length !== b.length) return false;\n const ab = Buffer.from(a, \"hex\");\n const bb = Buffer.from(b, \"hex\");\n if (ab.length === 0 || ab.length !== bb.length) return false;\n return timingSafeEqual(ab, bb);\n}\n\n/**\n * Verify a webhook signature. Throws on failure; returns nothing on success.\n *\n * Multiple secrets are accepted so a customer rotating their signing\n * secret can pass `[previous, current]` during the overlap window without\n * dropping legitimate deliveries signed under either key.\n */\nexport function verifySignature(\n rawBody: Uint8Array,\n sigHeader: string,\n secret: string | string[],\n opts: VerifyOptions = {},\n): void {\n const { timestamp, signatures } = parseHeader(sigHeader);\n\n const tolerance = opts.tolerance ?? DEFAULT_TOLERANCE_SECONDS;\n const now = (opts.now ?? (() => Math.floor(Date.now() / 1000)))();\n if (Math.abs(now - timestamp) > tolerance) {\n throw new WebhookTimestampError(\n `Signature timestamp is outside the tolerance window (${tolerance}s)`,\n );\n }\n\n const secrets = Array.isArray(secret) ? secret : [secret];\n const payload = Buffer.concat([\n Buffer.from(`${timestamp}.`),\n Buffer.isBuffer(rawBody) ? rawBody : Buffer.from(rawBody),\n ]);\n\n for (const s of secrets) {\n const expected = createHmac(\"sha256\", s).update(payload).digest(\"hex\");\n for (const candidate of signatures) {\n if (safeHexEqual(expected, candidate)) return;\n }\n }\n\n throw new WebhookSignatureError(\"No signatures matched the expected value\");\n}\n","import { WebhookPayloadError } from \"../errors.js\";\n\nimport { decoderForType, type WebhookEvent } from \"./types.js\";\nimport { verifySignature, type VerifyOptions } from \"./signature.js\";\n\n/**\n * Verify a signed webhook delivery, validate the envelope, and decode the\n * inner resource into a typed {@link WebhookEvent}.\n *\n * Throws {@link WebhookSignatureError} on a bad signature,\n * {@link WebhookTimestampError} when the timestamp falls outside the\n * tolerance window, and {@link WebhookPayloadError} when the body is\n * unparseable or the envelope shape is wrong.\n */\nexport function constructEvent(\n rawBody: string | Uint8Array | Buffer,\n sigHeader: string,\n secret: string | string[],\n opts?: VerifyOptions,\n): WebhookEvent {\n const bytes = toBytes(rawBody);\n\n verifySignature(bytes, sigHeader, secret, opts);\n\n let parsed: unknown;\n try {\n parsed = JSON.parse(new TextDecoder(\"utf-8\").decode(bytes));\n } catch (cause) {\n throw new WebhookPayloadError(\"Webhook body is not valid JSON\", { cause });\n }\n\n return buildEvent(parsed);\n}\n\nfunction toBytes(body: string | Uint8Array | Buffer): Uint8Array {\n if (typeof body === \"string\") return new TextEncoder().encode(body);\n if (Buffer.isBuffer(body)) return body;\n return body;\n}\n\nfunction isPlainObject(v: unknown): v is Record<string, unknown> {\n return typeof v === \"object\" && v !== null && !Array.isArray(v);\n}\n\nfunction requireString(obj: Record<string, unknown>, key: string): string {\n const v = obj[key];\n if (typeof v !== \"string\" || v.length === 0) {\n throw new WebhookPayloadError(`Webhook envelope is missing required string field \\`${key}\\``);\n }\n return v;\n}\n\nfunction requireBoolean(obj: Record<string, unknown>, key: string): boolean {\n const v = obj[key];\n if (typeof v !== \"boolean\") {\n throw new WebhookPayloadError(`Webhook envelope field \\`${key}\\` must be a boolean`);\n }\n return v;\n}\n\nfunction requireNumber(obj: Record<string, unknown>, key: string): number {\n const v = obj[key];\n if (typeof v !== \"number\" || !Number.isFinite(v)) {\n throw new WebhookPayloadError(`Webhook envelope field \\`${key}\\` must be a number`);\n }\n return v;\n}\n\nfunction buildEvent(parsed: unknown): WebhookEvent {\n if (!isPlainObject(parsed)) {\n throw new WebhookPayloadError(\"Webhook body must be a JSON object\");\n }\n\n const id = requireString(parsed, \"id\");\n if (parsed[\"object\"] !== \"event\") {\n throw new WebhookPayloadError(`Webhook envelope \\`object\\` must be \"event\"`);\n }\n const apiVersion = requireString(parsed, \"api_version\");\n const created = requireString(parsed, \"created\");\n const type = requireString(parsed, \"type\");\n const livemode = requireBoolean(parsed, \"livemode\");\n const pendingWebhooks = requireNumber(parsed, \"pending_webhooks\");\n\n const dataRaw = parsed[\"data\"];\n if (!isPlainObject(dataRaw)) {\n throw new WebhookPayloadError(\"Webhook envelope field `data` must be a JSON object\");\n }\n\n const requestRaw = parsed[\"request\"];\n if (!isPlainObject(requestRaw)) {\n throw new WebhookPayloadError(\"Webhook envelope field `request` must be a JSON object\");\n }\n const requestId = requireString(requestRaw, \"id\");\n const idempotencyKeyRaw = requestRaw[\"idempotency_key\"];\n if (idempotencyKeyRaw !== null && typeof idempotencyKeyRaw !== \"string\") {\n throw new WebhookPayloadError(\n \"Webhook envelope field `request.idempotency_key` must be a string or null\",\n );\n }\n\n const decode = decoderForType(type);\n const data: unknown = decode ? decode(dataRaw) : dataRaw;\n\n // Discriminated union narrowing happens on the consumer side via `type`;\n // we assert here because we've validated every field individually above.\n return {\n id,\n object: \"event\",\n apiVersion,\n created,\n type,\n data,\n livemode,\n pendingWebhooks,\n request: { id: requestId, idempotencyKey: idempotencyKeyRaw },\n } as WebhookEvent;\n}\n","/**\n * Public webhook surface. The {@link Webhooks} namespace mirrors the\n * Stripe SDK convention so customer code reads `client.webhooks.constructEvent(...)`\n * (or `Webhooks.constructEvent(...)` for consumers that don't instantiate\n * the full client).\n */\n\nimport {\n WebhookError,\n WebhookPayloadError,\n WebhookSignatureError,\n WebhookTimestampError,\n} from \"../errors.js\";\n\nimport { constructEvent } from \"./construct-event.js\";\n\nexport const Webhooks = {\n constructEvent,\n WebhookError,\n WebhookSignatureError,\n WebhookTimestampError,\n WebhookPayloadError,\n} as const;\n\nexport { constructEvent } from \"./construct-event.js\";\nexport {\n DEFAULT_TOLERANCE_SECONDS,\n EVENT_ID_HEADER,\n SIGNATURE_HEADER,\n verifySignature,\n type VerifyOptions,\n} from \"./signature.js\";\nexport { WEBHOOK_EVENT_TYPES } from \"./types.js\";\nexport type { EventBase, WebhookEvent, WebhookEventType } from \"./types.js\";\n","/**\n * Transcodely root client. Resource namespaces (`client.jobs`, `client.videos`,\n * etc.) are lazily instantiated on first access so unused namespaces don't\n * pull in their generated message classes.\n */\n\nimport { ApiKeys } from \"./resources/api-keys.js\";\nimport { Apps } from \"./resources/apps.js\";\nimport { Events } from \"./resources/events.js\";\nimport { Health } from \"./resources/health.js\";\nimport { Jobs } from \"./resources/jobs.js\";\nimport { Memberships } from \"./resources/memberships.js\";\nimport { Organizations } from \"./resources/organizations.js\";\nimport { Origins } from \"./resources/origins.js\";\nimport { Presets } from \"./resources/presets.js\";\nimport { Users } from \"./resources/users.js\";\nimport { Videos } from \"./resources/videos.js\";\nimport { WebhookEndpoints } from \"./resources/webhook-endpoints.js\";\nimport { Transport, type TransportConfig } from \"./transport/transport.js\";\nimport { Webhooks } from \"./webhooks/index.js\";\n\nexport interface TranscodelyConfig extends TransportConfig {}\n\nexport class Transcodely {\n static readonly API_VERSION: string;\n static readonly SDK_VERSION: string;\n\n private readonly transport: Transport;\n private _jobs: Jobs | undefined;\n private _videos: Videos | undefined;\n private _presets: Presets | undefined;\n private _origins: Origins | undefined;\n private _apps: Apps | undefined;\n private _apiKeys: ApiKeys | undefined;\n private _organizations: Organizations | undefined;\n private _memberships: Memberships | undefined;\n private _users: Users | undefined;\n private _health: Health | undefined;\n private _webhookEndpoints: WebhookEndpoints | undefined;\n private _events: Events | undefined;\n\n constructor(config: TranscodelyConfig) {\n this.transport = new Transport(config);\n }\n\n /** ID of the most recent successful or failed request, Stripe-style. */\n get lastRequestId(): string | undefined {\n return this.transport.lastRequestId;\n }\n\n get jobs(): Jobs {\n return (this._jobs ??= new Jobs(this.transport));\n }\n get videos(): Videos {\n return (this._videos ??= new Videos(this.transport));\n }\n get presets(): Presets {\n return (this._presets ??= new Presets(this.transport));\n }\n get origins(): Origins {\n return (this._origins ??= new Origins(this.transport));\n }\n get apps(): Apps {\n return (this._apps ??= new Apps(this.transport));\n }\n get apiKeys(): ApiKeys {\n return (this._apiKeys ??= new ApiKeys(this.transport));\n }\n get organizations(): Organizations {\n return (this._organizations ??= new Organizations(this.transport));\n }\n get memberships(): Memberships {\n return (this._memberships ??= new Memberships(this.transport));\n }\n get users(): Users {\n return (this._users ??= new Users(this.transport));\n }\n get health(): Health {\n return (this._health ??= new Health(this.transport));\n }\n get webhookEndpoints(): WebhookEndpoints {\n return (this._webhookEndpoints ??= new WebhookEndpoints(this.transport));\n }\n get events(): Events {\n return (this._events ??= new Events(this.transport));\n }\n /**\n * Stateless verify-and-decode helper. `client.webhooks.constructEvent(...)`\n * mirrors the Stripe SDK convention. The namespace is also exported at the\n * package root as {@link Webhooks} for consumers who don't instantiate\n * the full client.\n */\n get webhooks(): typeof Webhooks {\n return Webhooks;\n }\n}\n\nimport { API_VERSION, SDK_VERSION } from \"./version.js\";\n// Static fields can't reference module values inline above without TS5+ static\n// initializer block — define them here for broader compat.\n(Transcodely as { API_VERSION: string }).API_VERSION = API_VERSION;\n(Transcodely as { SDK_VERSION: string }).SDK_VERSION = SDK_VERSION;\n"]}