/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { MatterDefinition } from "../MatterDefinition.js";
import {
  ClusterElement as Cluster,
  AttributeElement as Attribute,
  FieldElement as Field,
  CommandElement as Command,
  DatatypeElement as Datatype
} from "../../elements/index.js";
const ContentLauncher = Cluster(
  { name: "ContentLauncher", id: 1290, classification: "application" },
  Attribute({ name: "ClusterRevision", id: 65533, type: "ClusterRevision", default: 2 }),
  Attribute(
    { name: "FeatureMap", id: 65532, type: "FeatureMap" },
    Field({ name: "CS", constraint: "0", title: "ContentSearch" }),
    Field({ name: "UP", constraint: "1", title: "UrlPlayback" }),
    Field({ name: "AS", constraint: "2", title: "AdvancedSeek" }),
    Field({ name: "TT", constraint: "3", title: "TextTracks" }),
    Field({ name: "AT", constraint: "4", title: "AudioTracks" })
  ),
  Attribute(
    {
      name: "AcceptHeader",
      id: 0,
      type: "list",
      access: "R V",
      conformance: "UP",
      constraint: "max 100[max 1024]",
      default: [],
      quality: "N"
    },
    Field({ name: "entry", type: "string" })
  ),
  Attribute({
    name: "SupportedStreamingProtocols",
    id: 1,
    type: "SupportedProtocolsBitmap",
    access: "R V",
    conformance: "UP",
    default: 0,
    quality: "N"
  }),
  Command(
    {
      name: "LaunchContent",
      id: 0,
      access: "O",
      conformance: "CS",
      direction: "request",
      response: "LauncherResponse"
    },
    Field({ name: "Search", id: 0, type: "ContentSearchStruct", conformance: "M", constraint: "desc" }),
    Field({ name: "AutoPlay", id: 1, type: "bool", conformance: "M", constraint: "desc" }),
    Field({ name: "Data", id: 2, type: "string", conformance: "O" }),
    Field({ name: "PlaybackPreferences", id: 3, type: "PlaybackPreferencesStruct", conformance: "O" }),
    Field({ name: "UseCurrentContext", id: 4, type: "bool", conformance: "O", constraint: "desc", default: true })
  ),
  Command(
    {
      name: "LaunchUrl",
      id: 1,
      access: "O",
      conformance: "UP",
      direction: "request",
      response: "LauncherResponse"
    },
    Field({ name: "ContentUrl", id: 0, type: "string", conformance: "M", constraint: "any" }),
    Field({ name: "DisplayString", id: 1, type: "string", conformance: "O", constraint: "any" }),
    Field({
      name: "BrandingInformation",
      id: 2,
      type: "BrandingInformationStruct",
      conformance: "O",
      constraint: "any"
    }),
    Field({
      name: "PlaybackPreferences",
      id: 3,
      type: "PlaybackPreferencesStruct",
      conformance: "O",
      constraint: "any"
    })
  ),
  Command(
    { name: "LauncherResponse", id: 2, conformance: "CS | UP", direction: "response" },
    Field({ name: "Status", id: 0, type: "StatusEnum", conformance: "M" }),
    Field({ name: "Data", id: 1, type: "string", conformance: "O" })
  ),
  Datatype(
    { name: "SupportedProtocolsBitmap", type: "map32" },
    Field({ name: "Dash", constraint: "0" }),
    Field({ name: "Hls", constraint: "1" })
  ),
  Datatype(
    { name: "StatusEnum", type: "enum8" },
    Field({ name: "Success", id: 0, conformance: "M" }),
    Field({ name: "UrlNotAvailable", id: 1, conformance: "M" }),
    Field({ name: "AuthFailed", id: 2, conformance: "M" }),
    Field({ name: "TextTrackNotAvailable", id: 3, conformance: "TT" }),
    Field({ name: "AudioTrackNotAvailable", id: 4, conformance: "AT" })
  ),
  Datatype(
    { name: "ParameterEnum", type: "enum8" },
    Field({ name: "Actor", id: 0, conformance: "M" }),
    Field({ name: "Channel", id: 1, conformance: "M" }),
    Field({ name: "Character", id: 2, conformance: "M" }),
    Field({ name: "Director", id: 3, conformance: "M" }),
    Field({ name: "Event", id: 4, conformance: "M" }),
    Field({ name: "Franchise", id: 5, conformance: "M" }),
    Field({ name: "Genre", id: 6, conformance: "M" }),
    Field({ name: "League", id: 7, conformance: "M" }),
    Field({ name: "Popularity", id: 8, conformance: "M" }),
    Field({ name: "Provider", id: 9, conformance: "M" }),
    Field({ name: "Sport", id: 10, conformance: "M" }),
    Field({ name: "SportsTeam", id: 11, conformance: "M" }),
    Field({ name: "Type", id: 12, conformance: "M" }),
    Field({ name: "Video", id: 13, conformance: "M" }),
    Field({ name: "Season", id: 14, conformance: "O" }),
    Field({ name: "Episode", id: 15, conformance: "O" }),
    Field({ name: "Any", id: 16, conformance: "O" })
  ),
  Datatype(
    { name: "MetricTypeEnum", type: "enum8" },
    Field({ name: "Pixels", id: 0, conformance: "M" }),
    Field({ name: "Percentage", id: 1, conformance: "M" })
  ),
  Datatype(
    { name: "AdditionalInfoStruct", type: "struct" },
    Field({ name: "Name", id: 0, type: "string", conformance: "M", constraint: "max 256" }),
    Field({ name: "Value", id: 1, type: "string", conformance: "M", constraint: "max 8192" })
  ),
  Datatype(
    { name: "ParameterStruct", type: "struct" },
    Field({ name: "Type", id: 0, type: "ParameterEnum", conformance: "M" }),
    Field({ name: "Value", id: 1, type: "string", conformance: "M", constraint: "max 1024" }),
    Field(
      { name: "ExternalIdList", id: 2, type: "list", conformance: "O", default: [] },
      Field({ name: "entry", type: "AdditionalInfoStruct" })
    )
  ),
  Datatype(
    { name: "ContentSearchStruct", type: "struct" },
    Field(
      { name: "ParameterList", id: 0, type: "list", conformance: "M" },
      Field({ name: "entry", type: "ParameterStruct" })
    )
  ),
  Datatype(
    { name: "DimensionStruct", type: "struct" },
    Field({ name: "Width", id: 0, type: "double", conformance: "M" }),
    Field({ name: "Height", id: 1, type: "double", conformance: "M" }),
    Field({ name: "Metric", id: 2, type: "MetricTypeEnum", conformance: "M" })
  ),
  Datatype(
    { name: "StyleInformationStruct", type: "struct" },
    Field({ name: "ImageUrl", id: 0, type: "string", conformance: "O", constraint: "max 8192" }),
    Field({ name: "Color", id: 1, type: "string", conformance: "O", constraint: "7, 9" }),
    Field({ name: "Size", id: 2, type: "DimensionStruct", conformance: "O" })
  ),
  Datatype(
    { name: "BrandingInformationStruct", type: "struct" },
    Field({ name: "ProviderName", id: 0, type: "string", conformance: "M", constraint: "max 256" }),
    Field({ name: "Background", id: 1, type: "StyleInformationStruct", conformance: "O" }),
    Field({ name: "Logo", id: 2, type: "StyleInformationStruct", conformance: "O" }),
    Field({ name: "ProgressBar", id: 3, type: "StyleInformationStruct", conformance: "O" }),
    Field({ name: "Splash", id: 4, type: "StyleInformationStruct", conformance: "O" }),
    Field({ name: "Watermark", id: 5, type: "StyleInformationStruct", conformance: "O" })
  ),
  Datatype(
    { name: "PlaybackPreferencesStruct", type: "struct" },
    Field({ name: "PlaybackPosition", id: 0, type: "uint64", conformance: "AS", quality: "X" }),
    Field({ name: "TextTrack", id: 1, type: "TrackPreferenceStruct", conformance: "TT", quality: "X" }),
    Field(
      { name: "AudioTracks", id: 2, type: "list", conformance: "AT", quality: "X" },
      Field({ name: "entry", type: "TrackPreferenceStruct" })
    )
  ),
  Datatype(
    { name: "TrackPreferenceStruct", type: "struct" },
    Field({ name: "LanguageCode", id: 0, type: "string", conformance: "M", constraint: "max 32" }),
    Field(
      { name: "Characteristics", id: 1, type: "list", conformance: "O", default: null, quality: "X" },
      Field({ name: "entry", type: "MediaPlayback.CharacteristicEnum" })
    ),
    Field({ name: "AudioOutputIndex", id: 2, type: "uint8", conformance: "AT", quality: "X" })
  )
);
MatterDefinition.children.push(ContentLauncher);
export {
  ContentLauncher
};
//# sourceMappingURL=content-launcher.element.js.map
