/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
/*** THIS FILE IS GENERATED, DO NOT EDIT ***/
import { MutableCluster } from "../cluster/mutation/MutableCluster.js";
import { Attribute, Command, OptionalAttribute } from "../cluster/Cluster.js";
import { TypeFromSchema } from "../tlv/TlvSchema.js";
import { StatusResponseError } from "../common/StatusResponseError.js";
import { Status as GlobalStatus } from "../globals/Status.js";
import { BitFlag } from "../schema/BitmapSchema.js";
import { Identity } from "#general";
export declare namespace Channel {
    /**
     * These are optional features supported by ChannelCluster.
     *
     * @see {@link MatterSpecification.v142.Cluster} § 6.6.4
     */
    enum Feature {
        /**
         * ChannelList (CL)
         *
         * Provides list of available channels.
         */
        ChannelList = "ChannelList",
        /**
         * LineupInfo (LI)
         *
         * Provides lineup info, which is a reference to an external source of lineup information.
         */
        LineupInfo = "LineupInfo",
        /**
         * ElectronicGuide (EG)
         *
         * Provides electronic program guide information.
         */
        ElectronicGuide = "ElectronicGuide",
        /**
         * RecordProgram (RP)
         *
         * Provides ability to record program.
         */
        RecordProgram = "RecordProgram"
    }
    /**
     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.4
     */
    enum ChannelType {
        /**
         * The channel is sourced from a satellite provider.
         */
        Satellite = 0,
        /**
         * The channel is sourced from a cable provider.
         */
        Cable = 1,
        /**
         * The channel is sourced from a terrestrial provider.
         */
        Terrestrial = 2,
        /**
         * The channel is sourced from an OTT provider.
         */
        Ott = 3
    }
    /**
     * This indicates a channel in a channel lineup.
     *
     * While the major and minor numbers in the ChannelInfoStruct support use of ATSC channel format, a lineup may use
     * other formats which can map into these numeric values.
     *
     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5
     */
    const TlvChannelInfo: import("../tlv/TlvObject.js").ObjectSchema<{
        /**
         * This field shall indicate the channel major number value (for example, using ATSC format). When the channel
         * number is expressed as a string, such as "13.1" or "256", the major number would be 13 or 256, respectively.
         * This field is required but shall be set to 0 for channels such as over-the-top channels that are not
         * represented by a major or minor number.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.1
         */
        majorNumber: import("../tlv/TlvObject.js").FieldType<number>;
        /**
         * This field shall indicate the channel minor number value (for example, using ATSC format). When the channel
         * number is expressed as a string, such as "13.1" or "256", the minor number would be 1 or 0,respectively. This
         * field is required but shall be set to 0 for channels such as over-the-top channels that are not represented
         * by a major or minor number.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.2
         */
        minorNumber: import("../tlv/TlvObject.js").FieldType<number>;
        /**
         * This field shall indicate the marketing name for the channel, such as “The CW" or "Comedy Central". This
         * field is optional, but SHOULD be provided when known.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.3
         */
        name: import("../tlv/TlvObject.js").OptionalFieldType<string>;
        /**
         * This field shall indicate the call sign of the channel, such as "PBS". This field is optional, but SHOULD be
         * provided when known.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.4
         */
        callSign: import("../tlv/TlvObject.js").OptionalFieldType<string>;
        /**
         * This field shall indicate the local affiliate call sign, such as "KCTS". This field is optional, but SHOULD
         * be provided when known.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.5
         */
        affiliateCallSign: import("../tlv/TlvObject.js").OptionalFieldType<string>;
        /**
         * This shall indicate the unique identifier for a specific channel. This field is optional, but SHOULD be
         * provided when MajorNumber and MinorNumber are not available.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.6
         */
        identifier: import("../tlv/TlvObject.js").OptionalFieldType<string>;
        /**
         * This shall indicate the type or grouping of a specific channel. This field is optional, but SHOULD be
         * provided when known.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.7
         */
        type: import("../tlv/TlvObject.js").OptionalFieldType<ChannelType>;
    }>;
    /**
     * This indicates a channel in a channel lineup.
     *
     * While the major and minor numbers in the ChannelInfoStruct support use of ATSC channel format, a lineup may use
     * other formats which can map into these numeric values.
     *
     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5
     */
    interface ChannelInfo extends TypeFromSchema<typeof TlvChannelInfo> {
    }
    /**
     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.2
     */
    enum LineupInfoType {
        /**
         * Multi System Operator
         */
        Mso = 0
    }
    /**
     * The Lineup Info allows references to external lineup sources like Gracenote. The combination of OperatorName,
     * LineupName, and PostalCode MUST uniquely identify a lineup.
     *
     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.6
     */
    const TlvLineupInfo: import("../tlv/TlvObject.js").ObjectSchema<{
        /**
         * This field shall indicate the name of the operator, for example “Comcast”.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.6.1
         */
        operatorName: import("../tlv/TlvObject.js").FieldType<string>;
        /**
         * This field shall indicate the name of the provider lineup, for example "Comcast King County". This field is
         * optional, but SHOULD be provided when known.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.6.2
         */
        lineupName: import("../tlv/TlvObject.js").OptionalFieldType<string>;
        /**
         * This field shall indicate the postal code (zip code) for the location of the device, such as "98052". This
         * field is optional, but SHOULD be provided when known.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.6.3
         */
        postalCode: import("../tlv/TlvObject.js").OptionalFieldType<string>;
        /**
         * This field shall indicate the type of lineup. This field is optional, but SHOULD be provided when known.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.6.4
         */
        lineupInfoType: import("../tlv/TlvObject.js").FieldType<LineupInfoType>;
    }>;
    /**
     * The Lineup Info allows references to external lineup sources like Gracenote. The combination of OperatorName,
     * LineupName, and PostalCode MUST uniquely identify a lineup.
     *
     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.6
     */
    interface LineupInfo extends TypeFromSchema<typeof TlvLineupInfo> {
    }
    /**
     * Input to the Channel changeChannel command
     *
     * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.1
     */
    const TlvChangeChannelRequest: import("../tlv/TlvObject.js").ObjectSchema<{
        /**
         * This field shall contain a user-input string to match in order to identify the target channel.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.1.1
         */
        match: import("../tlv/TlvObject.js").FieldType<string>;
    }>;
    /**
     * Input to the Channel changeChannel command
     *
     * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.1
     */
    interface ChangeChannelRequest extends TypeFromSchema<typeof TlvChangeChannelRequest> {
    }
    /**
     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.3
     */
    enum Status {
        /**
         * Command succeeded
         */
        Success = 0,
        /**
         * More than one equal match for the ChannelInfoStruct passed in.
         */
        MultipleMatches = 1,
        /**
         * No matches for the ChannelInfoStruct passed in.
         */
        NoMatches = 2
    }
    /**
     * Thrown for cluster status code {@link Status.MultipleMatches}.
     *
     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.3
     */
    class MultipleMatchesError extends StatusResponseError {
        constructor(message?: string, code?: GlobalStatus, clusterCode?: Status);
    }
    /**
     * Thrown for cluster status code {@link Status.NoMatches}.
     *
     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.3
     */
    class NoMatchesError extends StatusResponseError {
        constructor(message?: string, code?: GlobalStatus, clusterCode?: Status);
    }
    /**
     * This command shall be generated in response to a ChangeChannel command.
     *
     * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.2
     */
    const TlvChangeChannelResponse: import("../tlv/TlvObject.js").ObjectSchema<{
        /**
         * This field shall indicate the status of the command which resulted in this response.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.2.1
         */
        status: import("../tlv/TlvObject.js").FieldType<Status>;
        /**
         * This field shall indicate Optional app-specific data.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.2.2
         */
        data: import("../tlv/TlvObject.js").OptionalFieldType<string>;
    }>;
    /**
     * This command shall be generated in response to a ChangeChannel command.
     *
     * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.2
     */
    interface ChangeChannelResponse extends TypeFromSchema<typeof TlvChangeChannelResponse> {
    }
    /**
     * This object defines the pagination structure.
     *
     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.11
     */
    const TlvPageToken: import("../tlv/TlvObject.js").ObjectSchema<{
        /**
         * This field shall indicate the maximum number of entries that should be retrieved from the program guide in a
         * single response. It allows clients to specify the size of the paginated result set based on their needs.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.11.1
         */
        limit: import("../tlv/TlvObject.js").OptionalFieldType<number>;
        /**
         * This field shall indicate the cursor that pinpoints the start of the upcoming data page. In a Cursor-based
         * pagination system, the field acts as a reference point, ensuring the set of results corresponds directly to
         * the data following the specified cursor. In a Offset-based pagination system, the field, along with limit,
         * indicate the offset from which entries in the program guide will be retrieved.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.11.2
         */
        after: import("../tlv/TlvObject.js").OptionalFieldType<string>;
        /**
         * This field shall indicate the cursor that pinpoints the end of the upcoming data page. In a Cursor-based
         * pagination system, the field acts as a reference point, ensuring the set of results corresponds directly to
         * the data preceding the specified cursor. In a Offset-based pagination system, the field, along with limit,
         * indicate the offset from which entries in the program guide will be retrieved.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.11.3
         */
        before: import("../tlv/TlvObject.js").OptionalFieldType<string>;
    }>;
    /**
     * This object defines the pagination structure.
     *
     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.11
     */
    interface PageToken extends TypeFromSchema<typeof TlvPageToken> {
    }
    /**
     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.1
     */
    const RecordingFlag: {
        /**
         * The program is scheduled for recording.
         */
        scheduled: BitFlag;
        /**
         * The program series is scheduled for recording.
         */
        recordSeries: BitFlag;
        /**
         * The program is recorded and available to be played.
         */
        recorded: BitFlag;
    };
    /**
     * Input to the Channel getProgramGuide command
     *
     * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.5
     */
    const TlvGetProgramGuideRequest: import("../tlv/TlvObject.js").ObjectSchema<{
        /**
         * This field shall indicate the beginning of the time window for which program guide entries are to be
         * retrieved, as a UTC time. Entries with a start time on or after this value will be included in the results.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.5.1
         */
        startTime: import("../tlv/TlvObject.js").FieldType<number>;
        /**
         * This field shall indicate the end of the time window for which program guide entries are to be retrieved, as
         * a UTC time. Entries with an end time on or before this value will be included intheresults. This field can
         * represent a past or future value but shall be greater than the StartTime.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.5.2
         */
        endTime: import("../tlv/TlvObject.js").FieldType<number>;
        /**
         * This field shall indicate the set of channels for which program guide entries should be fetched. By providing
         * a list of channels in this field, the response will only include entries corresponding to the specified
         * channels.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.5.3
         */
        channelList: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
            /**
             * This field shall indicate the channel major number value (for example, using ATSC format). When the channel
             * number is expressed as a string, such as "13.1" or "256", the major number would be 13 or 256, respectively.
             * This field is required but shall be set to 0 for channels such as over-the-top channels that are not
             * represented by a major or minor number.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.1
             */
            majorNumber: import("../tlv/TlvObject.js").FieldType<number>;
            /**
             * This field shall indicate the channel minor number value (for example, using ATSC format). When the channel
             * number is expressed as a string, such as "13.1" or "256", the minor number would be 1 or 0,respectively. This
             * field is required but shall be set to 0 for channels such as over-the-top channels that are not represented
             * by a major or minor number.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.2
             */
            minorNumber: import("../tlv/TlvObject.js").FieldType<number>;
            /**
             * This field shall indicate the marketing name for the channel, such as “The CW" or "Comedy Central". This
             * field is optional, but SHOULD be provided when known.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.3
             */
            name: import("../tlv/TlvObject.js").OptionalFieldType<string>;
            /**
             * This field shall indicate the call sign of the channel, such as "PBS". This field is optional, but SHOULD be
             * provided when known.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.4
             */
            callSign: import("../tlv/TlvObject.js").OptionalFieldType<string>;
            /**
             * This field shall indicate the local affiliate call sign, such as "KCTS". This field is optional, but SHOULD
             * be provided when known.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.5
             */
            affiliateCallSign: import("../tlv/TlvObject.js").OptionalFieldType<string>;
            /**
             * This shall indicate the unique identifier for a specific channel. This field is optional, but SHOULD be
             * provided when MajorNumber and MinorNumber are not available.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.6
             */
            identifier: import("../tlv/TlvObject.js").OptionalFieldType<string>;
            /**
             * This shall indicate the type or grouping of a specific channel. This field is optional, but SHOULD be
             * provided when known.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.7
             */
            type: import("../tlv/TlvObject.js").OptionalFieldType<ChannelType>;
        }>[]>;
        /**
         * This field shall indicate the pagination token used for managing pagination progression.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.5.4
         */
        pageToken: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
            /**
             * This field shall indicate the maximum number of entries that should be retrieved from the program guide in a
             * single response. It allows clients to specify the size of the paginated result set based on their needs.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.11.1
             */
            limit: import("../tlv/TlvObject.js").OptionalFieldType<number>;
            /**
             * This field shall indicate the cursor that pinpoints the start of the upcoming data page. In a Cursor-based
             * pagination system, the field acts as a reference point, ensuring the set of results corresponds directly to
             * the data following the specified cursor. In a Offset-based pagination system, the field, along with limit,
             * indicate the offset from which entries in the program guide will be retrieved.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.11.2
             */
            after: import("../tlv/TlvObject.js").OptionalFieldType<string>;
            /**
             * This field shall indicate the cursor that pinpoints the end of the upcoming data page. In a Cursor-based
             * pagination system, the field acts as a reference point, ensuring the set of results corresponds directly to
             * the data preceding the specified cursor. In a Offset-based pagination system, the field, along with limit,
             * indicate the offset from which entries in the program guide will be retrieved.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.11.3
             */
            before: import("../tlv/TlvObject.js").OptionalFieldType<string>;
        }> | null>;
        /**
         * This field shall indicate the flags of the programs for which entries should be fetched.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.5.5
         */
        recordingFlag: import("../tlv/TlvObject.js").OptionalFieldType<import("../schema/BitmapSchema.js").TypeFromPartialBitSchema<{
            /**
             * The program is scheduled for recording.
             */
            scheduled: BitFlag;
            /**
             * The program series is scheduled for recording.
             */
            recordSeries: BitFlag;
            /**
             * The program is recorded and available to be played.
             */
            recorded: BitFlag;
        }> | null>;
        /**
         * This field shall indicate the list of additional external content identifiers.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.5.6
         */
        externalIdList: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
            name: import("../tlv/TlvObject.js").FieldType<string>;
            value: import("../tlv/TlvObject.js").FieldType<string>;
        }>[]>;
        /**
         * This field shall indicate Optional app-specific data.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.5.7
         */
        data: import("../tlv/TlvObject.js").OptionalFieldType<AllowSharedBufferSource>;
    }>;
    /**
     * Input to the Channel getProgramGuide command
     *
     * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.5
     */
    interface GetProgramGuideRequest extends TypeFromSchema<typeof TlvGetProgramGuideRequest> {
    }
    /**
     * This object defines the paging structure that includes the previous and next pagination tokens.
     *
     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.12
     */
    const TlvChannelPaging: import("../tlv/TlvObject.js").ObjectSchema<{
        /**
         * This field shall indicate the token to retrieve the preceding page. Absence of this field denotes the
         * response as the initial page.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.12.1
         */
        previousToken: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
            /**
             * This field shall indicate the maximum number of entries that should be retrieved from the program guide in a
             * single response. It allows clients to specify the size of the paginated result set based on their needs.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.11.1
             */
            limit: import("../tlv/TlvObject.js").OptionalFieldType<number>;
            /**
             * This field shall indicate the cursor that pinpoints the start of the upcoming data page. In a Cursor-based
             * pagination system, the field acts as a reference point, ensuring the set of results corresponds directly to
             * the data following the specified cursor. In a Offset-based pagination system, the field, along with limit,
             * indicate the offset from which entries in the program guide will be retrieved.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.11.2
             */
            after: import("../tlv/TlvObject.js").OptionalFieldType<string>;
            /**
             * This field shall indicate the cursor that pinpoints the end of the upcoming data page. In a Cursor-based
             * pagination system, the field acts as a reference point, ensuring the set of results corresponds directly to
             * the data preceding the specified cursor. In a Offset-based pagination system, the field, along with limit,
             * indicate the offset from which entries in the program guide will be retrieved.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.11.3
             */
            before: import("../tlv/TlvObject.js").OptionalFieldType<string>;
        }> | null>;
        /**
         * This field shall indicate the token to retrieve the next page. Absence of this field denotes the response as
         * the last page.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.12.2
         */
        nextToken: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
            /**
             * This field shall indicate the maximum number of entries that should be retrieved from the program guide in a
             * single response. It allows clients to specify the size of the paginated result set based on their needs.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.11.1
             */
            limit: import("../tlv/TlvObject.js").OptionalFieldType<number>;
            /**
             * This field shall indicate the cursor that pinpoints the start of the upcoming data page. In a Cursor-based
             * pagination system, the field acts as a reference point, ensuring the set of results corresponds directly to
             * the data following the specified cursor. In a Offset-based pagination system, the field, along with limit,
             * indicate the offset from which entries in the program guide will be retrieved.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.11.2
             */
            after: import("../tlv/TlvObject.js").OptionalFieldType<string>;
            /**
             * This field shall indicate the cursor that pinpoints the end of the upcoming data page. In a Cursor-based
             * pagination system, the field acts as a reference point, ensuring the set of results corresponds directly to
             * the data preceding the specified cursor. In a Offset-based pagination system, the field, along with limit,
             * indicate the offset from which entries in the program guide will be retrieved.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.11.3
             */
            before: import("../tlv/TlvObject.js").OptionalFieldType<string>;
        }> | null>;
    }>;
    /**
     * This object defines the paging structure that includes the previous and next pagination tokens.
     *
     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.12
     */
    interface ChannelPaging extends TypeFromSchema<typeof TlvChannelPaging> {
    }
    /**
     * This object provides the episode information related to a program.
     *
     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.9
     */
    const TlvSeriesInfo: import("../tlv/TlvObject.js").ObjectSchema<{
        /**
         * This field shall represent the season of the series associated to the program.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.9.1
         */
        season: import("../tlv/TlvObject.js").FieldType<string>;
        /**
         * This field shall represent the episode of the program.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.9.2
         */
        episode: import("../tlv/TlvObject.js").FieldType<string>;
    }>;
    /**
     * This object provides the episode information related to a program.
     *
     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.9
     */
    interface SeriesInfo extends TypeFromSchema<typeof TlvSeriesInfo> {
    }
    /**
     * This object defines the category associated to a program.
     *
     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.8
     */
    const TlvProgramCategory: import("../tlv/TlvObject.js").ObjectSchema<{
        /**
         * This field shall represent the category or genre of the program. Ex. News.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.8.1
         */
        category: import("../tlv/TlvObject.js").FieldType<string>;
        /**
         * This field shall represent the sub-category or sub-genre of the program. Ex. Local.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.8.2
         */
        subCategory: import("../tlv/TlvObject.js").OptionalFieldType<string>;
    }>;
    /**
     * This object defines the category associated to a program.
     *
     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.8
     */
    interface ProgramCategory extends TypeFromSchema<typeof TlvProgramCategory> {
    }
    /**
     * This object provides the cast information related to a program.
     *
     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.10
     */
    const TlvProgramCast: import("../tlv/TlvObject.js").ObjectSchema<{
        /**
         * This field shall represent the name of the cast member.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.10.1
         */
        name: import("../tlv/TlvObject.js").FieldType<string>;
        /**
         * This field shall represent the role of the cast member. Ex. Actor, Director.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.10.2
         */
        role: import("../tlv/TlvObject.js").FieldType<string>;
    }>;
    /**
     * This object provides the cast information related to a program.
     *
     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.10
     */
    interface ProgramCast extends TypeFromSchema<typeof TlvProgramCast> {
    }
    /**
     * This indicates a program within an electronic program guide (EPG).
     *
     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7
     */
    const TlvProgram: import("../tlv/TlvObject.js").ObjectSchema<{
        /**
         * This field shall indicate a unique identifier for a program within an electronic program guide list. The
         * identifier shall be unique across multiple channels.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.1
         */
        identifier: import("../tlv/TlvObject.js").FieldType<string>;
        /**
         * This field shall indicate the channel associated to the program.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.2
         */
        channel: import("../tlv/TlvObject.js").FieldType<import("../tlv/TlvObject.js").TypeFromFields<{
            /**
             * This field shall indicate the channel major number value (for example, using ATSC format). When the channel
             * number is expressed as a string, such as "13.1" or "256", the major number would be 13 or 256, respectively.
             * This field is required but shall be set to 0 for channels such as over-the-top channels that are not
             * represented by a major or minor number.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.1
             */
            majorNumber: import("../tlv/TlvObject.js").FieldType<number>;
            /**
             * This field shall indicate the channel minor number value (for example, using ATSC format). When the channel
             * number is expressed as a string, such as "13.1" or "256", the minor number would be 1 or 0,respectively. This
             * field is required but shall be set to 0 for channels such as over-the-top channels that are not represented
             * by a major or minor number.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.2
             */
            minorNumber: import("../tlv/TlvObject.js").FieldType<number>;
            /**
             * This field shall indicate the marketing name for the channel, such as “The CW" or "Comedy Central". This
             * field is optional, but SHOULD be provided when known.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.3
             */
            name: import("../tlv/TlvObject.js").OptionalFieldType<string>;
            /**
             * This field shall indicate the call sign of the channel, such as "PBS". This field is optional, but SHOULD be
             * provided when known.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.4
             */
            callSign: import("../tlv/TlvObject.js").OptionalFieldType<string>;
            /**
             * This field shall indicate the local affiliate call sign, such as "KCTS". This field is optional, but SHOULD
             * be provided when known.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.5
             */
            affiliateCallSign: import("../tlv/TlvObject.js").OptionalFieldType<string>;
            /**
             * This shall indicate the unique identifier for a specific channel. This field is optional, but SHOULD be
             * provided when MajorNumber and MinorNumber are not available.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.6
             */
            identifier: import("../tlv/TlvObject.js").OptionalFieldType<string>;
            /**
             * This shall indicate the type or grouping of a specific channel. This field is optional, but SHOULD be
             * provided when known.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.7
             */
            type: import("../tlv/TlvObject.js").OptionalFieldType<ChannelType>;
        }>>;
        /**
         * This field shall indicate an epoch time in seconds indicating the start time of a program, as aUTCtime. This
         * field can represent a past or future value.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.3
         */
        startTime: import("../tlv/TlvObject.js").FieldType<number>;
        /**
         * This field shall indicate an epoch time in seconds indicating the end time of a program, as aUTCtime. This
         * field can represent a past or future value but shall be greater than the StartTime.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.4
         */
        endTime: import("../tlv/TlvObject.js").FieldType<number>;
        /**
         * This field shall indicate the title or name for the specific program. For example, “MCIS: Los Angeles”.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.5
         */
        title: import("../tlv/TlvObject.js").FieldType<string>;
        /**
         * This field shall indicate the subtitle for the specific program. For example, “Maybe Today" which is an
         * episode name for “MCIS: Los Angeles”. This field is optional but shall be provided if applicable and known.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.6
         */
        subtitle: import("../tlv/TlvObject.js").OptionalFieldType<string>;
        /**
         * This field shall indicate the brief description for the specific program. For example, a description of an
         * episode. This field is optional but shall be provided if known.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.7
         */
        description: import("../tlv/TlvObject.js").OptionalFieldType<string>;
        /**
         * This field shall indicate the audio language for the specific program. The value is a string containing one
         * of the standard Tags for Identifying Languages RFC 5646. This field is optional but shall be provided if
         * known.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.8
         */
        audioLanguages: import("../tlv/TlvObject.js").OptionalFieldType<string[]>;
        /**
         * This field shall be used for indicating the level of parental guidance recommended for of a particular
         * program. This can be any rating system used in the country or region where the programisbroadcast. For
         * example, in the United States “TV-PG” may contain material that parents can find not suitable for younger
         * children but can be accepted in general for older children. This field is optional but shall be provided if
         * known.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.9
         */
        ratings: import("../tlv/TlvObject.js").OptionalFieldType<string[]>;
        /**
         * This field shall represent a URL of a thumbnail that clients can use to render an image fortheprogram. The
         * syntax of this field shall follow the syntax as specified in RFC 1738 and shall use the https scheme.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.10
         */
        thumbnailUrl: import("../tlv/TlvObject.js").OptionalFieldType<string>;
        /**
         * This field shall represent a URL of a poster that clients can use to render an image for the program on the
         * detail view. The syntax of this field shall follow the syntax as specified in RFC 1738 and shall use the
         * https scheme.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.11
         */
        posterArtUrl: import("../tlv/TlvObject.js").OptionalFieldType<string>;
        /**
         * This field shall represent the DVB-I URL associated to the program. The syntax of this field shall follow the
         * syntax as specified in RFC 1738 and shall use the https scheme.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.12
         */
        dvbiUrl: import("../tlv/TlvObject.js").OptionalFieldType<string>;
        /**
         * This field shall be a string, in ISO 8601 format, representing the date on which the programwasreleased. This
         * field is optional but when provided, the year shall be provided as part of the string.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.13
         */
        releaseDate: import("../tlv/TlvObject.js").OptionalFieldType<string>;
        /**
         * This field shall represent a string providing additional information on the parental guidance. This field is
         * optional.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.14
         */
        parentalGuidanceText: import("../tlv/TlvObject.js").OptionalFieldType<string>;
        /**
         * This field shall represent the recording status of the program. This field is required if the RecordProgram
         * feature is set.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.15
         */
        recordingFlag: import("../tlv/TlvObject.js").OptionalFieldType<import("../schema/BitmapSchema.js").TypeFromPartialBitSchema<{
            /**
             * The program is scheduled for recording.
             */
            scheduled: BitFlag;
            /**
             * The program series is scheduled for recording.
             */
            recordSeries: BitFlag;
            /**
             * The program is recorded and available to be played.
             */
            recorded: BitFlag;
        }>>;
        /**
         * This field shall represent the information of a series such as season and episode number. This field is
         * optional but SHOULD be provided if the program represents a series and this information is available.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.16
         */
        seriesInfo: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
            /**
             * This field shall represent the season of the series associated to the program.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.9.1
             */
            season: import("../tlv/TlvObject.js").FieldType<string>;
            /**
             * This field shall represent the episode of the program.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.9.2
             */
            episode: import("../tlv/TlvObject.js").FieldType<string>;
        }> | null>;
        /**
         * This field shall represent the category of a particular program. This field is optional but shall be provided
         * if known.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.17
         */
        categoryList: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
            /**
             * This field shall represent the category or genre of the program. Ex. News.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.8.1
             */
            category: import("../tlv/TlvObject.js").FieldType<string>;
            /**
             * This field shall represent the sub-category or sub-genre of the program. Ex. Local.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.8.2
             */
            subCategory: import("../tlv/TlvObject.js").OptionalFieldType<string>;
        }>[]>;
        /**
         * This field shall represent a list of the cast or the crew on the program. A single cast member may have more
         * than one role. This field is optional but shall be provided if known.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.18
         */
        castList: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
            /**
             * This field shall represent the name of the cast member.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.10.1
             */
            name: import("../tlv/TlvObject.js").FieldType<string>;
            /**
             * This field shall represent the role of the cast member. Ex. Actor, Director.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.10.2
             */
            role: import("../tlv/TlvObject.js").FieldType<string>;
        }>[]>;
        /**
         * This field shall indicate the list of additional external content identifiers.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.19
         */
        externalIdList: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
            name: import("../tlv/TlvObject.js").FieldType<string>;
            value: import("../tlv/TlvObject.js").FieldType<string>;
        }>[]>;
    }>;
    /**
     * This indicates a program within an electronic program guide (EPG).
     *
     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7
     */
    interface Program extends TypeFromSchema<typeof TlvProgram> {
    }
    /**
     * This command is a response to the GetProgramGuide command.
     *
     * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.6
     */
    const TlvProgramGuideResponse: import("../tlv/TlvObject.js").ObjectSchema<{
        /**
         * This field shall indicate the necessary pagination attributes that define information for both the succeeding
         * and preceding data pages.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.6.1
         */
        paging: import("../tlv/TlvObject.js").FieldType<import("../tlv/TlvObject.js").TypeFromFields<{
            /**
             * This field shall indicate the token to retrieve the preceding page. Absence of this field denotes the
             * response as the initial page.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.12.1
             */
            previousToken: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall indicate the maximum number of entries that should be retrieved from the program guide in a
                 * single response. It allows clients to specify the size of the paginated result set based on their needs.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.11.1
                 */
                limit: import("../tlv/TlvObject.js").OptionalFieldType<number>;
                /**
                 * This field shall indicate the cursor that pinpoints the start of the upcoming data page. In a Cursor-based
                 * pagination system, the field acts as a reference point, ensuring the set of results corresponds directly to
                 * the data following the specified cursor. In a Offset-based pagination system, the field, along with limit,
                 * indicate the offset from which entries in the program guide will be retrieved.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.11.2
                 */
                after: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                /**
                 * This field shall indicate the cursor that pinpoints the end of the upcoming data page. In a Cursor-based
                 * pagination system, the field acts as a reference point, ensuring the set of results corresponds directly to
                 * the data preceding the specified cursor. In a Offset-based pagination system, the field, along with limit,
                 * indicate the offset from which entries in the program guide will be retrieved.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.11.3
                 */
                before: import("../tlv/TlvObject.js").OptionalFieldType<string>;
            }> | null>;
            /**
             * This field shall indicate the token to retrieve the next page. Absence of this field denotes the response as
             * the last page.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.12.2
             */
            nextToken: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall indicate the maximum number of entries that should be retrieved from the program guide in a
                 * single response. It allows clients to specify the size of the paginated result set based on their needs.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.11.1
                 */
                limit: import("../tlv/TlvObject.js").OptionalFieldType<number>;
                /**
                 * This field shall indicate the cursor that pinpoints the start of the upcoming data page. In a Cursor-based
                 * pagination system, the field acts as a reference point, ensuring the set of results corresponds directly to
                 * the data following the specified cursor. In a Offset-based pagination system, the field, along with limit,
                 * indicate the offset from which entries in the program guide will be retrieved.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.11.2
                 */
                after: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                /**
                 * This field shall indicate the cursor that pinpoints the end of the upcoming data page. In a Cursor-based
                 * pagination system, the field acts as a reference point, ensuring the set of results corresponds directly to
                 * the data preceding the specified cursor. In a Offset-based pagination system, the field, along with limit,
                 * indicate the offset from which entries in the program guide will be retrieved.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.11.3
                 */
                before: import("../tlv/TlvObject.js").OptionalFieldType<string>;
            }> | null>;
        }>>;
        /**
         * This field shall indicate the list of programs.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.6.2
         */
        programList: import("../tlv/TlvObject.js").FieldType<import("../tlv/TlvObject.js").TypeFromFields<{
            /**
             * This field shall indicate a unique identifier for a program within an electronic program guide list. The
             * identifier shall be unique across multiple channels.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.1
             */
            identifier: import("../tlv/TlvObject.js").FieldType<string>;
            /**
             * This field shall indicate the channel associated to the program.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.2
             */
            channel: import("../tlv/TlvObject.js").FieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall indicate the channel major number value (for example, using ATSC format). When the channel
                 * number is expressed as a string, such as "13.1" or "256", the major number would be 13 or 256, respectively.
                 * This field is required but shall be set to 0 for channels such as over-the-top channels that are not
                 * represented by a major or minor number.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.1
                 */
                majorNumber: import("../tlv/TlvObject.js").FieldType<number>;
                /**
                 * This field shall indicate the channel minor number value (for example, using ATSC format). When the channel
                 * number is expressed as a string, such as "13.1" or "256", the minor number would be 1 or 0,respectively. This
                 * field is required but shall be set to 0 for channels such as over-the-top channels that are not represented
                 * by a major or minor number.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.2
                 */
                minorNumber: import("../tlv/TlvObject.js").FieldType<number>;
                /**
                 * This field shall indicate the marketing name for the channel, such as “The CW" or "Comedy Central". This
                 * field is optional, but SHOULD be provided when known.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.3
                 */
                name: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                /**
                 * This field shall indicate the call sign of the channel, such as "PBS". This field is optional, but SHOULD be
                 * provided when known.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.4
                 */
                callSign: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                /**
                 * This field shall indicate the local affiliate call sign, such as "KCTS". This field is optional, but SHOULD
                 * be provided when known.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.5
                 */
                affiliateCallSign: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                /**
                 * This shall indicate the unique identifier for a specific channel. This field is optional, but SHOULD be
                 * provided when MajorNumber and MinorNumber are not available.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.6
                 */
                identifier: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                /**
                 * This shall indicate the type or grouping of a specific channel. This field is optional, but SHOULD be
                 * provided when known.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.7
                 */
                type: import("../tlv/TlvObject.js").OptionalFieldType<ChannelType>;
            }>>;
            /**
             * This field shall indicate an epoch time in seconds indicating the start time of a program, as aUTCtime. This
             * field can represent a past or future value.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.3
             */
            startTime: import("../tlv/TlvObject.js").FieldType<number>;
            /**
             * This field shall indicate an epoch time in seconds indicating the end time of a program, as aUTCtime. This
             * field can represent a past or future value but shall be greater than the StartTime.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.4
             */
            endTime: import("../tlv/TlvObject.js").FieldType<number>;
            /**
             * This field shall indicate the title or name for the specific program. For example, “MCIS: Los Angeles”.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.5
             */
            title: import("../tlv/TlvObject.js").FieldType<string>;
            /**
             * This field shall indicate the subtitle for the specific program. For example, “Maybe Today" which is an
             * episode name for “MCIS: Los Angeles”. This field is optional but shall be provided if applicable and known.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.6
             */
            subtitle: import("../tlv/TlvObject.js").OptionalFieldType<string>;
            /**
             * This field shall indicate the brief description for the specific program. For example, a description of an
             * episode. This field is optional but shall be provided if known.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.7
             */
            description: import("../tlv/TlvObject.js").OptionalFieldType<string>;
            /**
             * This field shall indicate the audio language for the specific program. The value is a string containing one
             * of the standard Tags for Identifying Languages RFC 5646. This field is optional but shall be provided if
             * known.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.8
             */
            audioLanguages: import("../tlv/TlvObject.js").OptionalFieldType<string[]>;
            /**
             * This field shall be used for indicating the level of parental guidance recommended for of a particular
             * program. This can be any rating system used in the country or region where the programisbroadcast. For
             * example, in the United States “TV-PG” may contain material that parents can find not suitable for younger
             * children but can be accepted in general for older children. This field is optional but shall be provided if
             * known.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.9
             */
            ratings: import("../tlv/TlvObject.js").OptionalFieldType<string[]>;
            /**
             * This field shall represent a URL of a thumbnail that clients can use to render an image fortheprogram. The
             * syntax of this field shall follow the syntax as specified in RFC 1738 and shall use the https scheme.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.10
             */
            thumbnailUrl: import("../tlv/TlvObject.js").OptionalFieldType<string>;
            /**
             * This field shall represent a URL of a poster that clients can use to render an image for the program on the
             * detail view. The syntax of this field shall follow the syntax as specified in RFC 1738 and shall use the
             * https scheme.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.11
             */
            posterArtUrl: import("../tlv/TlvObject.js").OptionalFieldType<string>;
            /**
             * This field shall represent the DVB-I URL associated to the program. The syntax of this field shall follow the
             * syntax as specified in RFC 1738 and shall use the https scheme.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.12
             */
            dvbiUrl: import("../tlv/TlvObject.js").OptionalFieldType<string>;
            /**
             * This field shall be a string, in ISO 8601 format, representing the date on which the programwasreleased. This
             * field is optional but when provided, the year shall be provided as part of the string.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.13
             */
            releaseDate: import("../tlv/TlvObject.js").OptionalFieldType<string>;
            /**
             * This field shall represent a string providing additional information on the parental guidance. This field is
             * optional.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.14
             */
            parentalGuidanceText: import("../tlv/TlvObject.js").OptionalFieldType<string>;
            /**
             * This field shall represent the recording status of the program. This field is required if the RecordProgram
             * feature is set.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.15
             */
            recordingFlag: import("../tlv/TlvObject.js").OptionalFieldType<import("../schema/BitmapSchema.js").TypeFromPartialBitSchema<{
                /**
                 * The program is scheduled for recording.
                 */
                scheduled: BitFlag;
                /**
                 * The program series is scheduled for recording.
                 */
                recordSeries: BitFlag;
                /**
                 * The program is recorded and available to be played.
                 */
                recorded: BitFlag;
            }>>;
            /**
             * This field shall represent the information of a series such as season and episode number. This field is
             * optional but SHOULD be provided if the program represents a series and this information is available.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.16
             */
            seriesInfo: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall represent the season of the series associated to the program.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.9.1
                 */
                season: import("../tlv/TlvObject.js").FieldType<string>;
                /**
                 * This field shall represent the episode of the program.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.9.2
                 */
                episode: import("../tlv/TlvObject.js").FieldType<string>;
            }> | null>;
            /**
             * This field shall represent the category of a particular program. This field is optional but shall be provided
             * if known.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.17
             */
            categoryList: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall represent the category or genre of the program. Ex. News.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.8.1
                 */
                category: import("../tlv/TlvObject.js").FieldType<string>;
                /**
                 * This field shall represent the sub-category or sub-genre of the program. Ex. Local.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.8.2
                 */
                subCategory: import("../tlv/TlvObject.js").OptionalFieldType<string>;
            }>[]>;
            /**
             * This field shall represent a list of the cast or the crew on the program. A single cast member may have more
             * than one role. This field is optional but shall be provided if known.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.18
             */
            castList: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall represent the name of the cast member.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.10.1
                 */
                name: import("../tlv/TlvObject.js").FieldType<string>;
                /**
                 * This field shall represent the role of the cast member. Ex. Actor, Director.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.10.2
                 */
                role: import("../tlv/TlvObject.js").FieldType<string>;
            }>[]>;
            /**
             * This field shall indicate the list of additional external content identifiers.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.19
             */
            externalIdList: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                name: import("../tlv/TlvObject.js").FieldType<string>;
                value: import("../tlv/TlvObject.js").FieldType<string>;
            }>[]>;
        }>[]>;
    }>;
    /**
     * This command is a response to the GetProgramGuide command.
     *
     * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.6
     */
    interface ProgramGuideResponse extends TypeFromSchema<typeof TlvProgramGuideResponse> {
    }
    /**
     * Input to the Channel recordProgram command
     *
     * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.7
     */
    const TlvRecordProgramRequest: import("../tlv/TlvObject.js").ObjectSchema<{
        /**
         * This field shall indicate the program identifier for the program that should be recorded. This value is
         * provided by the identifier field in ProgramStruct.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.7.1
         */
        programIdentifier: import("../tlv/TlvObject.js").FieldType<string>;
        /**
         * This field shall indicate whether the whole series associated to the program should be recorded. For example,
         * invoking record program on an episode with that flag set to true, the target should schedule record the whole
         * series.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.7.2
         */
        shouldRecordSeries: import("../tlv/TlvObject.js").FieldType<boolean>;
        /**
         * This field, if present, shall indicate the list of additional external content identifiers.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.7.3
         */
        externalIdList: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
            name: import("../tlv/TlvObject.js").FieldType<string>;
            value: import("../tlv/TlvObject.js").FieldType<string>;
        }>[]>;
        /**
         * This field, if present, shall indicate app-specific data.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.7.4
         */
        data: import("../tlv/TlvObject.js").OptionalFieldType<AllowSharedBufferSource>;
    }>;
    /**
     * Input to the Channel recordProgram command
     *
     * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.7
     */
    interface RecordProgramRequest extends TypeFromSchema<typeof TlvRecordProgramRequest> {
    }
    /**
     * Input to the Channel cancelRecordProgram command
     *
     * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.8
     */
    const TlvCancelRecordProgramRequest: import("../tlv/TlvObject.js").ObjectSchema<{
        /**
         * This field shall indicate the program identifier for the program that should be cancelledfromrecording. This
         * value is provided by the identifier field in ProgramStruct.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.8.1
         */
        programIdentifier: import("../tlv/TlvObject.js").FieldType<string>;
        /**
         * This field shall indicate whether the whole series associated to the program should be cancelled from
         * recording. For example, invoking record program on an episode with that flag set to true, the target should
         * schedule record the whole series.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.8.2
         */
        shouldRecordSeries: import("../tlv/TlvObject.js").FieldType<boolean>;
        /**
         * This field, if present, shall indicate the list of additional external content identifiers.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.8.3
         */
        externalIdList: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
            name: import("../tlv/TlvObject.js").FieldType<string>;
            value: import("../tlv/TlvObject.js").FieldType<string>;
        }>[]>;
        /**
         * This field, if present, shall indicate app-specific data.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.8.4
         */
        data: import("../tlv/TlvObject.js").OptionalFieldType<AllowSharedBufferSource>;
    }>;
    /**
     * Input to the Channel cancelRecordProgram command
     *
     * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.8
     */
    interface CancelRecordProgramRequest extends TypeFromSchema<typeof TlvCancelRecordProgramRequest> {
    }
    /**
     * Input to the Channel changeChannelByNumber command
     *
     * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.3
     */
    const TlvChangeChannelByNumberRequest: import("../tlv/TlvObject.js").ObjectSchema<{
        /**
         * This field shall indicate the channel major number value (ATSC format) to which the channel should change.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.3.1
         */
        majorNumber: import("../tlv/TlvObject.js").FieldType<number>;
        /**
         * This field shall indicate the channel minor number value (ATSC format) to which the channel should change.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.3.2
         */
        minorNumber: import("../tlv/TlvObject.js").FieldType<number>;
    }>;
    /**
     * Input to the Channel changeChannelByNumber command
     *
     * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.3
     */
    interface ChangeChannelByNumberRequest extends TypeFromSchema<typeof TlvChangeChannelByNumberRequest> {
    }
    /**
     * Input to the Channel skipChannel command
     *
     * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.4
     */
    const TlvSkipChannelRequest: import("../tlv/TlvObject.js").ObjectSchema<{
        /**
         * This field shall indicate the number of steps to increase (Count is positive) or decrease (Count is negative)
         * the current channel.
         *
         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.4.1
         */
        count: import("../tlv/TlvObject.js").FieldType<number>;
    }>;
    /**
     * Input to the Channel skipChannel command
     *
     * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.4
     */
    interface SkipChannelRequest extends TypeFromSchema<typeof TlvSkipChannelRequest> {
    }
    /**
     * A ChannelCluster supports these elements if it supports feature ChannelList.
     */
    const ChannelListComponent: {
        readonly attributes: {
            /**
             * This attribute shall provide the list of supported channels.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.6.1
             */
            readonly channelList: Attribute<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall indicate the channel major number value (for example, using ATSC format). When the channel
                 * number is expressed as a string, such as "13.1" or "256", the major number would be 13 or 256, respectively.
                 * This field is required but shall be set to 0 for channels such as over-the-top channels that are not
                 * represented by a major or minor number.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.1
                 */
                majorNumber: import("../tlv/TlvObject.js").FieldType<number>;
                /**
                 * This field shall indicate the channel minor number value (for example, using ATSC format). When the channel
                 * number is expressed as a string, such as "13.1" or "256", the minor number would be 1 or 0,respectively. This
                 * field is required but shall be set to 0 for channels such as over-the-top channels that are not represented
                 * by a major or minor number.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.2
                 */
                minorNumber: import("../tlv/TlvObject.js").FieldType<number>;
                /**
                 * This field shall indicate the marketing name for the channel, such as “The CW" or "Comedy Central". This
                 * field is optional, but SHOULD be provided when known.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.3
                 */
                name: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                /**
                 * This field shall indicate the call sign of the channel, such as "PBS". This field is optional, but SHOULD be
                 * provided when known.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.4
                 */
                callSign: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                /**
                 * This field shall indicate the local affiliate call sign, such as "KCTS". This field is optional, but SHOULD
                 * be provided when known.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.5
                 */
                affiliateCallSign: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                /**
                 * This shall indicate the unique identifier for a specific channel. This field is optional, but SHOULD be
                 * provided when MajorNumber and MinorNumber are not available.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.6
                 */
                identifier: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                /**
                 * This shall indicate the type or grouping of a specific channel. This field is optional, but SHOULD be
                 * provided when known.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.7
                 */
                type: import("../tlv/TlvObject.js").OptionalFieldType<ChannelType>;
            }>[], any>;
        };
    };
    /**
     * A ChannelCluster supports these elements if it supports feature LineupInfo.
     */
    const LineupInfoComponent: {
        readonly attributes: {
            /**
             * This attribute shall identify the channel lineup using external data sources.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.6.2
             */
            readonly lineup: Attribute<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall indicate the name of the operator, for example “Comcast”.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.6.1
                 */
                operatorName: import("../tlv/TlvObject.js").FieldType<string>;
                /**
                 * This field shall indicate the name of the provider lineup, for example "Comcast King County". This field is
                 * optional, but SHOULD be provided when known.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.6.2
                 */
                lineupName: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                /**
                 * This field shall indicate the postal code (zip code) for the location of the device, such as "98052". This
                 * field is optional, but SHOULD be provided when known.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.6.3
                 */
                postalCode: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                /**
                 * This field shall indicate the type of lineup. This field is optional, but SHOULD be provided when known.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.6.4
                 */
                lineupInfoType: import("../tlv/TlvObject.js").FieldType<LineupInfoType>;
            }> | null, any>;
        };
    };
    /**
     * A ChannelCluster supports these elements if it supports features ChannelList or LineupInfo.
     */
    const ChannelListOrLineupInfoComponent: {
        readonly commands: {
            /**
             * Change the channel to the channel case-insensitive exact matching the value passed as an argument.
             *
             * The match priority order shall be: Identifier, AffiliateCallSign, CallSign, Name, Number. In the match
             * string, the Channel number should be presented in the "Major.Minor" format, such as "13.1".
             *
             * Upon receipt, this shall generate a ChangeChannelResponse command.
             *
             * Upon success, the CurrentChannel attribute, if supported, shall be updated to reflect the change.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.1
             */
            readonly changeChannel: Command<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall contain a user-input string to match in order to identify the target channel.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.1.1
                 */
                match: import("../tlv/TlvObject.js").FieldType<string>;
            }>, import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall indicate the status of the command which resulted in this response.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.2.1
                 */
                status: import("../tlv/TlvObject.js").FieldType<Status>;
                /**
                 * This field shall indicate Optional app-specific data.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.2.2
                 */
                data: import("../tlv/TlvObject.js").OptionalFieldType<string>;
            }>, any>;
        };
    };
    /**
     * A ChannelCluster supports these elements if it supports feature ElectronicGuide.
     */
    const ElectronicGuideComponent: {
        readonly commands: {
            /**
             * This command retrieves the program guide. It accepts several filter parameters to return specific
             * schedule and program information from a content app. The command shall receive in
             * responseaProgramGuideResponse. Standard error codes shall be used when arguments provided are not valid.
             * For example, if StartTime is greater than EndTime, the status code INVALID_ACTION shall be returned.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.5
             */
            readonly getProgramGuide: Command<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall indicate the beginning of the time window for which program guide entries are to be
                 * retrieved, as a UTC time. Entries with a start time on or after this value will be included in the results.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.5.1
                 */
                startTime: import("../tlv/TlvObject.js").FieldType<number>;
                /**
                 * This field shall indicate the end of the time window for which program guide entries are to be retrieved, as
                 * a UTC time. Entries with an end time on or before this value will be included intheresults. This field can
                 * represent a past or future value but shall be greater than the StartTime.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.5.2
                 */
                endTime: import("../tlv/TlvObject.js").FieldType<number>;
                /**
                 * This field shall indicate the set of channels for which program guide entries should be fetched. By providing
                 * a list of channels in this field, the response will only include entries corresponding to the specified
                 * channels.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.5.3
                 */
                channelList: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                    /**
                     * This field shall indicate the channel major number value (for example, using ATSC format). When the channel
                     * number is expressed as a string, such as "13.1" or "256", the major number would be 13 or 256, respectively.
                     * This field is required but shall be set to 0 for channels such as over-the-top channels that are not
                     * represented by a major or minor number.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.1
                     */
                    majorNumber: import("../tlv/TlvObject.js").FieldType<number>;
                    /**
                     * This field shall indicate the channel minor number value (for example, using ATSC format). When the channel
                     * number is expressed as a string, such as "13.1" or "256", the minor number would be 1 or 0,respectively. This
                     * field is required but shall be set to 0 for channels such as over-the-top channels that are not represented
                     * by a major or minor number.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.2
                     */
                    minorNumber: import("../tlv/TlvObject.js").FieldType<number>;
                    /**
                     * This field shall indicate the marketing name for the channel, such as “The CW" or "Comedy Central". This
                     * field is optional, but SHOULD be provided when known.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.3
                     */
                    name: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                    /**
                     * This field shall indicate the call sign of the channel, such as "PBS". This field is optional, but SHOULD be
                     * provided when known.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.4
                     */
                    callSign: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                    /**
                     * This field shall indicate the local affiliate call sign, such as "KCTS". This field is optional, but SHOULD
                     * be provided when known.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.5
                     */
                    affiliateCallSign: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                    /**
                     * This shall indicate the unique identifier for a specific channel. This field is optional, but SHOULD be
                     * provided when MajorNumber and MinorNumber are not available.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.6
                     */
                    identifier: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                    /**
                     * This shall indicate the type or grouping of a specific channel. This field is optional, but SHOULD be
                     * provided when known.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.7
                     */
                    type: import("../tlv/TlvObject.js").OptionalFieldType<ChannelType>;
                }>[]>;
                /**
                 * This field shall indicate the pagination token used for managing pagination progression.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.5.4
                 */
                pageToken: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                    /**
                     * This field shall indicate the maximum number of entries that should be retrieved from the program guide in a
                     * single response. It allows clients to specify the size of the paginated result set based on their needs.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.11.1
                     */
                    limit: import("../tlv/TlvObject.js").OptionalFieldType<number>;
                    /**
                     * This field shall indicate the cursor that pinpoints the start of the upcoming data page. In a Cursor-based
                     * pagination system, the field acts as a reference point, ensuring the set of results corresponds directly to
                     * the data following the specified cursor. In a Offset-based pagination system, the field, along with limit,
                     * indicate the offset from which entries in the program guide will be retrieved.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.11.2
                     */
                    after: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                    /**
                     * This field shall indicate the cursor that pinpoints the end of the upcoming data page. In a Cursor-based
                     * pagination system, the field acts as a reference point, ensuring the set of results corresponds directly to
                     * the data preceding the specified cursor. In a Offset-based pagination system, the field, along with limit,
                     * indicate the offset from which entries in the program guide will be retrieved.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.11.3
                     */
                    before: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                }> | null>;
                /**
                 * This field shall indicate the flags of the programs for which entries should be fetched.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.5.5
                 */
                recordingFlag: import("../tlv/TlvObject.js").OptionalFieldType<import("../schema/BitmapSchema.js").TypeFromPartialBitSchema<{
                    /**
                     * The program is scheduled for recording.
                     */
                    scheduled: BitFlag;
                    /**
                     * The program series is scheduled for recording.
                     */
                    recordSeries: BitFlag;
                    /**
                     * The program is recorded and available to be played.
                     */
                    recorded: BitFlag;
                }> | null>;
                /**
                 * This field shall indicate the list of additional external content identifiers.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.5.6
                 */
                externalIdList: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                    name: import("../tlv/TlvObject.js").FieldType<string>;
                    value: import("../tlv/TlvObject.js").FieldType<string>;
                }>[]>;
                /**
                 * This field shall indicate Optional app-specific data.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.5.7
                 */
                data: import("../tlv/TlvObject.js").OptionalFieldType<AllowSharedBufferSource>;
            }>, import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall indicate the necessary pagination attributes that define information for both the succeeding
                 * and preceding data pages.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.6.1
                 */
                paging: import("../tlv/TlvObject.js").FieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                    /**
                     * This field shall indicate the token to retrieve the preceding page. Absence of this field denotes the
                     * response as the initial page.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.12.1
                     */
                    previousToken: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                        /**
                         * This field shall indicate the maximum number of entries that should be retrieved from the program guide in a
                         * single response. It allows clients to specify the size of the paginated result set based on their needs.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.11.1
                         */
                        limit: import("../tlv/TlvObject.js").OptionalFieldType<number>;
                        /**
                         * This field shall indicate the cursor that pinpoints the start of the upcoming data page. In a Cursor-based
                         * pagination system, the field acts as a reference point, ensuring the set of results corresponds directly to
                         * the data following the specified cursor. In a Offset-based pagination system, the field, along with limit,
                         * indicate the offset from which entries in the program guide will be retrieved.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.11.2
                         */
                        after: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                        /**
                         * This field shall indicate the cursor that pinpoints the end of the upcoming data page. In a Cursor-based
                         * pagination system, the field acts as a reference point, ensuring the set of results corresponds directly to
                         * the data preceding the specified cursor. In a Offset-based pagination system, the field, along with limit,
                         * indicate the offset from which entries in the program guide will be retrieved.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.11.3
                         */
                        before: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                    }> | null>;
                    /**
                     * This field shall indicate the token to retrieve the next page. Absence of this field denotes the response as
                     * the last page.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.12.2
                     */
                    nextToken: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                        /**
                         * This field shall indicate the maximum number of entries that should be retrieved from the program guide in a
                         * single response. It allows clients to specify the size of the paginated result set based on their needs.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.11.1
                         */
                        limit: import("../tlv/TlvObject.js").OptionalFieldType<number>;
                        /**
                         * This field shall indicate the cursor that pinpoints the start of the upcoming data page. In a Cursor-based
                         * pagination system, the field acts as a reference point, ensuring the set of results corresponds directly to
                         * the data following the specified cursor. In a Offset-based pagination system, the field, along with limit,
                         * indicate the offset from which entries in the program guide will be retrieved.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.11.2
                         */
                        after: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                        /**
                         * This field shall indicate the cursor that pinpoints the end of the upcoming data page. In a Cursor-based
                         * pagination system, the field acts as a reference point, ensuring the set of results corresponds directly to
                         * the data preceding the specified cursor. In a Offset-based pagination system, the field, along with limit,
                         * indicate the offset from which entries in the program guide will be retrieved.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.11.3
                         */
                        before: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                    }> | null>;
                }>>;
                /**
                 * This field shall indicate the list of programs.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.6.2
                 */
                programList: import("../tlv/TlvObject.js").FieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                    /**
                     * This field shall indicate a unique identifier for a program within an electronic program guide list. The
                     * identifier shall be unique across multiple channels.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.1
                     */
                    identifier: import("../tlv/TlvObject.js").FieldType<string>;
                    /**
                     * This field shall indicate the channel associated to the program.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.2
                     */
                    channel: import("../tlv/TlvObject.js").FieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                        /**
                         * This field shall indicate the channel major number value (for example, using ATSC format). When the channel
                         * number is expressed as a string, such as "13.1" or "256", the major number would be 13 or 256, respectively.
                         * This field is required but shall be set to 0 for channels such as over-the-top channels that are not
                         * represented by a major or minor number.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.1
                         */
                        majorNumber: import("../tlv/TlvObject.js").FieldType<number>;
                        /**
                         * This field shall indicate the channel minor number value (for example, using ATSC format). When the channel
                         * number is expressed as a string, such as "13.1" or "256", the minor number would be 1 or 0,respectively. This
                         * field is required but shall be set to 0 for channels such as over-the-top channels that are not represented
                         * by a major or minor number.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.2
                         */
                        minorNumber: import("../tlv/TlvObject.js").FieldType<number>;
                        /**
                         * This field shall indicate the marketing name for the channel, such as “The CW" or "Comedy Central". This
                         * field is optional, but SHOULD be provided when known.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.3
                         */
                        name: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                        /**
                         * This field shall indicate the call sign of the channel, such as "PBS". This field is optional, but SHOULD be
                         * provided when known.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.4
                         */
                        callSign: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                        /**
                         * This field shall indicate the local affiliate call sign, such as "KCTS". This field is optional, but SHOULD
                         * be provided when known.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.5
                         */
                        affiliateCallSign: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                        /**
                         * This shall indicate the unique identifier for a specific channel. This field is optional, but SHOULD be
                         * provided when MajorNumber and MinorNumber are not available.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.6
                         */
                        identifier: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                        /**
                         * This shall indicate the type or grouping of a specific channel. This field is optional, but SHOULD be
                         * provided when known.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.7
                         */
                        type: import("../tlv/TlvObject.js").OptionalFieldType<ChannelType>;
                    }>>;
                    /**
                     * This field shall indicate an epoch time in seconds indicating the start time of a program, as aUTCtime. This
                     * field can represent a past or future value.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.3
                     */
                    startTime: import("../tlv/TlvObject.js").FieldType<number>;
                    /**
                     * This field shall indicate an epoch time in seconds indicating the end time of a program, as aUTCtime. This
                     * field can represent a past or future value but shall be greater than the StartTime.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.4
                     */
                    endTime: import("../tlv/TlvObject.js").FieldType<number>;
                    /**
                     * This field shall indicate the title or name for the specific program. For example, “MCIS: Los Angeles”.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.5
                     */
                    title: import("../tlv/TlvObject.js").FieldType<string>;
                    /**
                     * This field shall indicate the subtitle for the specific program. For example, “Maybe Today" which is an
                     * episode name for “MCIS: Los Angeles”. This field is optional but shall be provided if applicable and known.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.6
                     */
                    subtitle: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                    /**
                     * This field shall indicate the brief description for the specific program. For example, a description of an
                     * episode. This field is optional but shall be provided if known.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.7
                     */
                    description: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                    /**
                     * This field shall indicate the audio language for the specific program. The value is a string containing one
                     * of the standard Tags for Identifying Languages RFC 5646. This field is optional but shall be provided if
                     * known.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.8
                     */
                    audioLanguages: import("../tlv/TlvObject.js").OptionalFieldType<string[]>;
                    /**
                     * This field shall be used for indicating the level of parental guidance recommended for of a particular
                     * program. This can be any rating system used in the country or region where the programisbroadcast. For
                     * example, in the United States “TV-PG” may contain material that parents can find not suitable for younger
                     * children but can be accepted in general for older children. This field is optional but shall be provided if
                     * known.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.9
                     */
                    ratings: import("../tlv/TlvObject.js").OptionalFieldType<string[]>;
                    /**
                     * This field shall represent a URL of a thumbnail that clients can use to render an image fortheprogram. The
                     * syntax of this field shall follow the syntax as specified in RFC 1738 and shall use the https scheme.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.10
                     */
                    thumbnailUrl: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                    /**
                     * This field shall represent a URL of a poster that clients can use to render an image for the program on the
                     * detail view. The syntax of this field shall follow the syntax as specified in RFC 1738 and shall use the
                     * https scheme.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.11
                     */
                    posterArtUrl: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                    /**
                     * This field shall represent the DVB-I URL associated to the program. The syntax of this field shall follow the
                     * syntax as specified in RFC 1738 and shall use the https scheme.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.12
                     */
                    dvbiUrl: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                    /**
                     * This field shall be a string, in ISO 8601 format, representing the date on which the programwasreleased. This
                     * field is optional but when provided, the year shall be provided as part of the string.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.13
                     */
                    releaseDate: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                    /**
                     * This field shall represent a string providing additional information on the parental guidance. This field is
                     * optional.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.14
                     */
                    parentalGuidanceText: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                    /**
                     * This field shall represent the recording status of the program. This field is required if the RecordProgram
                     * feature is set.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.15
                     */
                    recordingFlag: import("../tlv/TlvObject.js").OptionalFieldType<import("../schema/BitmapSchema.js").TypeFromPartialBitSchema<{
                        /**
                         * The program is scheduled for recording.
                         */
                        scheduled: BitFlag;
                        /**
                         * The program series is scheduled for recording.
                         */
                        recordSeries: BitFlag;
                        /**
                         * The program is recorded and available to be played.
                         */
                        recorded: BitFlag;
                    }>>;
                    /**
                     * This field shall represent the information of a series such as season and episode number. This field is
                     * optional but SHOULD be provided if the program represents a series and this information is available.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.16
                     */
                    seriesInfo: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                        /**
                         * This field shall represent the season of the series associated to the program.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.9.1
                         */
                        season: import("../tlv/TlvObject.js").FieldType<string>;
                        /**
                         * This field shall represent the episode of the program.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.9.2
                         */
                        episode: import("../tlv/TlvObject.js").FieldType<string>;
                    }> | null>;
                    /**
                     * This field shall represent the category of a particular program. This field is optional but shall be provided
                     * if known.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.17
                     */
                    categoryList: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                        /**
                         * This field shall represent the category or genre of the program. Ex. News.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.8.1
                         */
                        category: import("../tlv/TlvObject.js").FieldType<string>;
                        /**
                         * This field shall represent the sub-category or sub-genre of the program. Ex. Local.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.8.2
                         */
                        subCategory: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                    }>[]>;
                    /**
                     * This field shall represent a list of the cast or the crew on the program. A single cast member may have more
                     * than one role. This field is optional but shall be provided if known.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.18
                     */
                    castList: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                        /**
                         * This field shall represent the name of the cast member.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.10.1
                         */
                        name: import("../tlv/TlvObject.js").FieldType<string>;
                        /**
                         * This field shall represent the role of the cast member. Ex. Actor, Director.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.10.2
                         */
                        role: import("../tlv/TlvObject.js").FieldType<string>;
                    }>[]>;
                    /**
                     * This field shall indicate the list of additional external content identifiers.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.19
                     */
                    externalIdList: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                        name: import("../tlv/TlvObject.js").FieldType<string>;
                        value: import("../tlv/TlvObject.js").FieldType<string>;
                    }>[]>;
                }>[]>;
            }>, any>;
        };
    };
    /**
     * A ChannelCluster supports these elements if it supports features RecordProgram and ElectronicGuide.
     */
    const RecordProgramAndElectronicGuideComponent: {
        readonly commands: {
            /**
             * Record a specific program or series when it goes live. This functionality enables DVR recording features.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.7
             */
            readonly recordProgram: Command<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall indicate the program identifier for the program that should be recorded. This value is
                 * provided by the identifier field in ProgramStruct.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.7.1
                 */
                programIdentifier: import("../tlv/TlvObject.js").FieldType<string>;
                /**
                 * This field shall indicate whether the whole series associated to the program should be recorded. For example,
                 * invoking record program on an episode with that flag set to true, the target should schedule record the whole
                 * series.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.7.2
                 */
                shouldRecordSeries: import("../tlv/TlvObject.js").FieldType<boolean>;
                /**
                 * This field, if present, shall indicate the list of additional external content identifiers.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.7.3
                 */
                externalIdList: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                    name: import("../tlv/TlvObject.js").FieldType<string>;
                    value: import("../tlv/TlvObject.js").FieldType<string>;
                }>[]>;
                /**
                 * This field, if present, shall indicate app-specific data.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.7.4
                 */
                data: import("../tlv/TlvObject.js").OptionalFieldType<AllowSharedBufferSource>;
            }>, void, any>;
            /**
             * Cancel recording for a specific program or series.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.8
             */
            readonly cancelRecordProgram: Command<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall indicate the program identifier for the program that should be cancelledfromrecording. This
                 * value is provided by the identifier field in ProgramStruct.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.8.1
                 */
                programIdentifier: import("../tlv/TlvObject.js").FieldType<string>;
                /**
                 * This field shall indicate whether the whole series associated to the program should be cancelled from
                 * recording. For example, invoking record program on an episode with that flag set to true, the target should
                 * schedule record the whole series.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.8.2
                 */
                shouldRecordSeries: import("../tlv/TlvObject.js").FieldType<boolean>;
                /**
                 * This field, if present, shall indicate the list of additional external content identifiers.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.8.3
                 */
                externalIdList: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                    name: import("../tlv/TlvObject.js").FieldType<string>;
                    value: import("../tlv/TlvObject.js").FieldType<string>;
                }>[]>;
                /**
                 * This field, if present, shall indicate app-specific data.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.8.4
                 */
                data: import("../tlv/TlvObject.js").OptionalFieldType<AllowSharedBufferSource>;
            }>, void, any>;
        };
    };
    /**
     * These elements and properties are present in all Channel clusters.
     */
    const Base: {
        readonly id: 1284;
        readonly name: "Channel";
        readonly revision: 2;
        readonly features: {
            /**
             * Provides list of available channels.
             */
            readonly channelList: BitFlag;
            /**
             * Provides lineup info, which is a reference to an external source of lineup information.
             */
            readonly lineupInfo: BitFlag;
            /**
             * Provides electronic program guide information.
             */
            readonly electronicGuide: BitFlag;
            /**
             * Provides ability to record program.
             */
            readonly recordProgram: BitFlag;
        };
        readonly attributes: {
            /**
             * This attribute shall contain the current channel. When supported but a channel is not currently tuned to
             * (if a content application is in foreground), the value of the field shall be null.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.6.3
             */
            readonly currentChannel: OptionalAttribute<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall indicate the channel major number value (for example, using ATSC format). When the channel
                 * number is expressed as a string, such as "13.1" or "256", the major number would be 13 or 256, respectively.
                 * This field is required but shall be set to 0 for channels such as over-the-top channels that are not
                 * represented by a major or minor number.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.1
                 */
                majorNumber: import("../tlv/TlvObject.js").FieldType<number>;
                /**
                 * This field shall indicate the channel minor number value (for example, using ATSC format). When the channel
                 * number is expressed as a string, such as "13.1" or "256", the minor number would be 1 or 0,respectively. This
                 * field is required but shall be set to 0 for channels such as over-the-top channels that are not represented
                 * by a major or minor number.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.2
                 */
                minorNumber: import("../tlv/TlvObject.js").FieldType<number>;
                /**
                 * This field shall indicate the marketing name for the channel, such as “The CW" or "Comedy Central". This
                 * field is optional, but SHOULD be provided when known.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.3
                 */
                name: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                /**
                 * This field shall indicate the call sign of the channel, such as "PBS". This field is optional, but SHOULD be
                 * provided when known.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.4
                 */
                callSign: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                /**
                 * This field shall indicate the local affiliate call sign, such as "KCTS". This field is optional, but SHOULD
                 * be provided when known.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.5
                 */
                affiliateCallSign: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                /**
                 * This shall indicate the unique identifier for a specific channel. This field is optional, but SHOULD be
                 * provided when MajorNumber and MinorNumber are not available.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.6
                 */
                identifier: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                /**
                 * This shall indicate the type or grouping of a specific channel. This field is optional, but SHOULD be
                 * provided when known.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.7
                 */
                type: import("../tlv/TlvObject.js").OptionalFieldType<ChannelType>;
            }> | null, any>;
        };
        readonly commands: {
            /**
             * Change the channel to the channel with the given Number in the ChannelList attribute.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.3
             */
            readonly changeChannelByNumber: Command<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall indicate the channel major number value (ATSC format) to which the channel should change.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.3.1
                 */
                majorNumber: import("../tlv/TlvObject.js").FieldType<number>;
                /**
                 * This field shall indicate the channel minor number value (ATSC format) to which the channel should change.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.3.2
                 */
                minorNumber: import("../tlv/TlvObject.js").FieldType<number>;
            }>, void, any>;
            /**
             * This command provides channel up and channel down functionality, but allows channel index jumps of size
             * Count.
             *
             * Jumps are relative to the available list of channels. For example, when the current channel is 100.0 and
             * the list of available channels is [100.0, 200.0, 201.0, 305.1], a SkipChannel command with jump value of
             * 2 shall change the channel to 201.0.
             *
             * When the value of the increase or decrease is larger than the number of channels remaining in the given
             * direction, then the behavior shall be to return to the beginning (or end) of the channel list and
             * continue. For example, if the current channel is at index 0 and count value of -1 is given, then the
             * current channel should change to the last channel.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.4
             */
            readonly skipChannel: Command<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall indicate the number of steps to increase (Count is positive) or decrease (Count is negative)
                 * the current channel.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.4.1
                 */
                count: import("../tlv/TlvObject.js").FieldType<number>;
            }>, void, any>;
        };
        /**
         * This metadata controls which ChannelCluster elements matter.js activates for specific feature combinations.
         */
        readonly extensions: readonly [{
            readonly flags: {
                readonly channelList: true;
            };
            readonly component: {
                readonly attributes: {
                    /**
                     * This attribute shall provide the list of supported channels.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.6.1
                     */
                    readonly channelList: Attribute<import("../tlv/TlvObject.js").TypeFromFields<{
                        /**
                         * This field shall indicate the channel major number value (for example, using ATSC format). When the channel
                         * number is expressed as a string, such as "13.1" or "256", the major number would be 13 or 256, respectively.
                         * This field is required but shall be set to 0 for channels such as over-the-top channels that are not
                         * represented by a major or minor number.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.1
                         */
                        majorNumber: import("../tlv/TlvObject.js").FieldType<number>;
                        /**
                         * This field shall indicate the channel minor number value (for example, using ATSC format). When the channel
                         * number is expressed as a string, such as "13.1" or "256", the minor number would be 1 or 0,respectively. This
                         * field is required but shall be set to 0 for channels such as over-the-top channels that are not represented
                         * by a major or minor number.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.2
                         */
                        minorNumber: import("../tlv/TlvObject.js").FieldType<number>;
                        /**
                         * This field shall indicate the marketing name for the channel, such as “The CW" or "Comedy Central". This
                         * field is optional, but SHOULD be provided when known.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.3
                         */
                        name: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                        /**
                         * This field shall indicate the call sign of the channel, such as "PBS". This field is optional, but SHOULD be
                         * provided when known.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.4
                         */
                        callSign: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                        /**
                         * This field shall indicate the local affiliate call sign, such as "KCTS". This field is optional, but SHOULD
                         * be provided when known.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.5
                         */
                        affiliateCallSign: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                        /**
                         * This shall indicate the unique identifier for a specific channel. This field is optional, but SHOULD be
                         * provided when MajorNumber and MinorNumber are not available.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.6
                         */
                        identifier: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                        /**
                         * This shall indicate the type or grouping of a specific channel. This field is optional, but SHOULD be
                         * provided when known.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.7
                         */
                        type: import("../tlv/TlvObject.js").OptionalFieldType<ChannelType>;
                    }>[], any>;
                };
            };
        }, {
            readonly flags: {
                readonly lineupInfo: true;
            };
            readonly component: {
                readonly attributes: {
                    /**
                     * This attribute shall identify the channel lineup using external data sources.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.6.2
                     */
                    readonly lineup: Attribute<import("../tlv/TlvObject.js").TypeFromFields<{
                        /**
                         * This field shall indicate the name of the operator, for example “Comcast”.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.6.1
                         */
                        operatorName: import("../tlv/TlvObject.js").FieldType<string>;
                        /**
                         * This field shall indicate the name of the provider lineup, for example "Comcast King County". This field is
                         * optional, but SHOULD be provided when known.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.6.2
                         */
                        lineupName: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                        /**
                         * This field shall indicate the postal code (zip code) for the location of the device, such as "98052". This
                         * field is optional, but SHOULD be provided when known.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.6.3
                         */
                        postalCode: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                        /**
                         * This field shall indicate the type of lineup. This field is optional, but SHOULD be provided when known.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.6.4
                         */
                        lineupInfoType: import("../tlv/TlvObject.js").FieldType<LineupInfoType>;
                    }> | null, any>;
                };
            };
        }, {
            readonly flags: {
                readonly channelList: true;
            };
            readonly component: {
                readonly commands: {
                    /**
                     * Change the channel to the channel case-insensitive exact matching the value passed as an argument.
                     *
                     * The match priority order shall be: Identifier, AffiliateCallSign, CallSign, Name, Number. In the match
                     * string, the Channel number should be presented in the "Major.Minor" format, such as "13.1".
                     *
                     * Upon receipt, this shall generate a ChangeChannelResponse command.
                     *
                     * Upon success, the CurrentChannel attribute, if supported, shall be updated to reflect the change.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.1
                     */
                    readonly changeChannel: Command<import("../tlv/TlvObject.js").TypeFromFields<{
                        /**
                         * This field shall contain a user-input string to match in order to identify the target channel.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.1.1
                         */
                        match: import("../tlv/TlvObject.js").FieldType<string>;
                    }>, import("../tlv/TlvObject.js").TypeFromFields<{
                        /**
                         * This field shall indicate the status of the command which resulted in this response.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.2.1
                         */
                        status: import("../tlv/TlvObject.js").FieldType<Status>;
                        /**
                         * This field shall indicate Optional app-specific data.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.2.2
                         */
                        data: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                    }>, any>;
                };
            };
        }, {
            readonly flags: {
                readonly lineupInfo: true;
            };
            readonly component: {
                readonly commands: {
                    /**
                     * Change the channel to the channel case-insensitive exact matching the value passed as an argument.
                     *
                     * The match priority order shall be: Identifier, AffiliateCallSign, CallSign, Name, Number. In the match
                     * string, the Channel number should be presented in the "Major.Minor" format, such as "13.1".
                     *
                     * Upon receipt, this shall generate a ChangeChannelResponse command.
                     *
                     * Upon success, the CurrentChannel attribute, if supported, shall be updated to reflect the change.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.1
                     */
                    readonly changeChannel: Command<import("../tlv/TlvObject.js").TypeFromFields<{
                        /**
                         * This field shall contain a user-input string to match in order to identify the target channel.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.1.1
                         */
                        match: import("../tlv/TlvObject.js").FieldType<string>;
                    }>, import("../tlv/TlvObject.js").TypeFromFields<{
                        /**
                         * This field shall indicate the status of the command which resulted in this response.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.2.1
                         */
                        status: import("../tlv/TlvObject.js").FieldType<Status>;
                        /**
                         * This field shall indicate Optional app-specific data.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.2.2
                         */
                        data: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                    }>, any>;
                };
            };
        }, {
            readonly flags: {
                readonly electronicGuide: true;
            };
            readonly component: {
                readonly commands: {
                    /**
                     * This command retrieves the program guide. It accepts several filter parameters to return specific
                     * schedule and program information from a content app. The command shall receive in
                     * responseaProgramGuideResponse. Standard error codes shall be used when arguments provided are not valid.
                     * For example, if StartTime is greater than EndTime, the status code INVALID_ACTION shall be returned.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.5
                     */
                    readonly getProgramGuide: Command<import("../tlv/TlvObject.js").TypeFromFields<{
                        /**
                         * This field shall indicate the beginning of the time window for which program guide entries are to be
                         * retrieved, as a UTC time. Entries with a start time on or after this value will be included in the results.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.5.1
                         */
                        startTime: import("../tlv/TlvObject.js").FieldType<number>;
                        /**
                         * This field shall indicate the end of the time window for which program guide entries are to be retrieved, as
                         * a UTC time. Entries with an end time on or before this value will be included intheresults. This field can
                         * represent a past or future value but shall be greater than the StartTime.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.5.2
                         */
                        endTime: import("../tlv/TlvObject.js").FieldType<number>;
                        /**
                         * This field shall indicate the set of channels for which program guide entries should be fetched. By providing
                         * a list of channels in this field, the response will only include entries corresponding to the specified
                         * channels.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.5.3
                         */
                        channelList: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                            /**
                             * This field shall indicate the channel major number value (for example, using ATSC format). When the channel
                             * number is expressed as a string, such as "13.1" or "256", the major number would be 13 or 256, respectively.
                             * This field is required but shall be set to 0 for channels such as over-the-top channels that are not
                             * represented by a major or minor number.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.1
                             */
                            majorNumber: import("../tlv/TlvObject.js").FieldType<number>;
                            /**
                             * This field shall indicate the channel minor number value (for example, using ATSC format). When the channel
                             * number is expressed as a string, such as "13.1" or "256", the minor number would be 1 or 0,respectively. This
                             * field is required but shall be set to 0 for channels such as over-the-top channels that are not represented
                             * by a major or minor number.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.2
                             */
                            minorNumber: import("../tlv/TlvObject.js").FieldType<number>;
                            /**
                             * This field shall indicate the marketing name for the channel, such as “The CW" or "Comedy Central". This
                             * field is optional, but SHOULD be provided when known.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.3
                             */
                            name: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                            /**
                             * This field shall indicate the call sign of the channel, such as "PBS". This field is optional, but SHOULD be
                             * provided when known.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.4
                             */
                            callSign: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                            /**
                             * This field shall indicate the local affiliate call sign, such as "KCTS". This field is optional, but SHOULD
                             * be provided when known.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.5
                             */
                            affiliateCallSign: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                            /**
                             * This shall indicate the unique identifier for a specific channel. This field is optional, but SHOULD be
                             * provided when MajorNumber and MinorNumber are not available.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.6
                             */
                            identifier: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                            /**
                             * This shall indicate the type or grouping of a specific channel. This field is optional, but SHOULD be
                             * provided when known.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.7
                             */
                            type: import("../tlv/TlvObject.js").OptionalFieldType<ChannelType>;
                        }>[]>;
                        /**
                         * This field shall indicate the pagination token used for managing pagination progression.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.5.4
                         */
                        pageToken: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                            /**
                             * This field shall indicate the maximum number of entries that should be retrieved from the program guide in a
                             * single response. It allows clients to specify the size of the paginated result set based on their needs.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.11.1
                             */
                            limit: import("../tlv/TlvObject.js").OptionalFieldType<number>;
                            /**
                             * This field shall indicate the cursor that pinpoints the start of the upcoming data page. In a Cursor-based
                             * pagination system, the field acts as a reference point, ensuring the set of results corresponds directly to
                             * the data following the specified cursor. In a Offset-based pagination system, the field, along with limit,
                             * indicate the offset from which entries in the program guide will be retrieved.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.11.2
                             */
                            after: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                            /**
                             * This field shall indicate the cursor that pinpoints the end of the upcoming data page. In a Cursor-based
                             * pagination system, the field acts as a reference point, ensuring the set of results corresponds directly to
                             * the data preceding the specified cursor. In a Offset-based pagination system, the field, along with limit,
                             * indicate the offset from which entries in the program guide will be retrieved.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.11.3
                             */
                            before: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                        }> | null>;
                        /**
                         * This field shall indicate the flags of the programs for which entries should be fetched.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.5.5
                         */
                        recordingFlag: import("../tlv/TlvObject.js").OptionalFieldType<import("../schema/BitmapSchema.js").TypeFromPartialBitSchema<{
                            /**
                             * The program is scheduled for recording.
                             */
                            scheduled: BitFlag;
                            /**
                             * The program series is scheduled for recording.
                             */
                            recordSeries: BitFlag;
                            /**
                             * The program is recorded and available to be played.
                             */
                            recorded: BitFlag;
                        }> | null>;
                        /**
                         * This field shall indicate the list of additional external content identifiers.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.5.6
                         */
                        externalIdList: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                            name: import("../tlv/TlvObject.js").FieldType<string>;
                            value: import("../tlv/TlvObject.js").FieldType<string>;
                        }>[]>;
                        /**
                         * This field shall indicate Optional app-specific data.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.5.7
                         */
                        data: import("../tlv/TlvObject.js").OptionalFieldType<AllowSharedBufferSource>;
                    }>, import("../tlv/TlvObject.js").TypeFromFields<{
                        /**
                         * This field shall indicate the necessary pagination attributes that define information for both the succeeding
                         * and preceding data pages.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.6.1
                         */
                        paging: import("../tlv/TlvObject.js").FieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                            /**
                             * This field shall indicate the token to retrieve the preceding page. Absence of this field denotes the
                             * response as the initial page.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.12.1
                             */
                            previousToken: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                                /**
                                 * This field shall indicate the maximum number of entries that should be retrieved from the program guide in a
                                 * single response. It allows clients to specify the size of the paginated result set based on their needs.
                                 *
                                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.11.1
                                 */
                                limit: import("../tlv/TlvObject.js").OptionalFieldType<number>;
                                /**
                                 * This field shall indicate the cursor that pinpoints the start of the upcoming data page. In a Cursor-based
                                 * pagination system, the field acts as a reference point, ensuring the set of results corresponds directly to
                                 * the data following the specified cursor. In a Offset-based pagination system, the field, along with limit,
                                 * indicate the offset from which entries in the program guide will be retrieved.
                                 *
                                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.11.2
                                 */
                                after: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                                /**
                                 * This field shall indicate the cursor that pinpoints the end of the upcoming data page. In a Cursor-based
                                 * pagination system, the field acts as a reference point, ensuring the set of results corresponds directly to
                                 * the data preceding the specified cursor. In a Offset-based pagination system, the field, along with limit,
                                 * indicate the offset from which entries in the program guide will be retrieved.
                                 *
                                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.11.3
                                 */
                                before: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                            }> | null>;
                            /**
                             * This field shall indicate the token to retrieve the next page. Absence of this field denotes the response as
                             * the last page.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.12.2
                             */
                            nextToken: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                                /**
                                 * This field shall indicate the maximum number of entries that should be retrieved from the program guide in a
                                 * single response. It allows clients to specify the size of the paginated result set based on their needs.
                                 *
                                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.11.1
                                 */
                                limit: import("../tlv/TlvObject.js").OptionalFieldType<number>;
                                /**
                                 * This field shall indicate the cursor that pinpoints the start of the upcoming data page. In a Cursor-based
                                 * pagination system, the field acts as a reference point, ensuring the set of results corresponds directly to
                                 * the data following the specified cursor. In a Offset-based pagination system, the field, along with limit,
                                 * indicate the offset from which entries in the program guide will be retrieved.
                                 *
                                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.11.2
                                 */
                                after: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                                /**
                                 * This field shall indicate the cursor that pinpoints the end of the upcoming data page. In a Cursor-based
                                 * pagination system, the field acts as a reference point, ensuring the set of results corresponds directly to
                                 * the data preceding the specified cursor. In a Offset-based pagination system, the field, along with limit,
                                 * indicate the offset from which entries in the program guide will be retrieved.
                                 *
                                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.11.3
                                 */
                                before: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                            }> | null>;
                        }>>;
                        /**
                         * This field shall indicate the list of programs.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.6.2
                         */
                        programList: import("../tlv/TlvObject.js").FieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                            /**
                             * This field shall indicate a unique identifier for a program within an electronic program guide list. The
                             * identifier shall be unique across multiple channels.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.1
                             */
                            identifier: import("../tlv/TlvObject.js").FieldType<string>;
                            /**
                             * This field shall indicate the channel associated to the program.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.2
                             */
                            channel: import("../tlv/TlvObject.js").FieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                                /**
                                 * This field shall indicate the channel major number value (for example, using ATSC format). When the channel
                                 * number is expressed as a string, such as "13.1" or "256", the major number would be 13 or 256, respectively.
                                 * This field is required but shall be set to 0 for channels such as over-the-top channels that are not
                                 * represented by a major or minor number.
                                 *
                                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.1
                                 */
                                majorNumber: import("../tlv/TlvObject.js").FieldType<number>;
                                /**
                                 * This field shall indicate the channel minor number value (for example, using ATSC format). When the channel
                                 * number is expressed as a string, such as "13.1" or "256", the minor number would be 1 or 0,respectively. This
                                 * field is required but shall be set to 0 for channels such as over-the-top channels that are not represented
                                 * by a major or minor number.
                                 *
                                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.2
                                 */
                                minorNumber: import("../tlv/TlvObject.js").FieldType<number>;
                                /**
                                 * This field shall indicate the marketing name for the channel, such as “The CW" or "Comedy Central". This
                                 * field is optional, but SHOULD be provided when known.
                                 *
                                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.3
                                 */
                                name: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                                /**
                                 * This field shall indicate the call sign of the channel, such as "PBS". This field is optional, but SHOULD be
                                 * provided when known.
                                 *
                                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.4
                                 */
                                callSign: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                                /**
                                 * This field shall indicate the local affiliate call sign, such as "KCTS". This field is optional, but SHOULD
                                 * be provided when known.
                                 *
                                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.5
                                 */
                                affiliateCallSign: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                                /**
                                 * This shall indicate the unique identifier for a specific channel. This field is optional, but SHOULD be
                                 * provided when MajorNumber and MinorNumber are not available.
                                 *
                                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.6
                                 */
                                identifier: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                                /**
                                 * This shall indicate the type or grouping of a specific channel. This field is optional, but SHOULD be
                                 * provided when known.
                                 *
                                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.7
                                 */
                                type: import("../tlv/TlvObject.js").OptionalFieldType<ChannelType>;
                            }>>;
                            /**
                             * This field shall indicate an epoch time in seconds indicating the start time of a program, as aUTCtime. This
                             * field can represent a past or future value.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.3
                             */
                            startTime: import("../tlv/TlvObject.js").FieldType<number>;
                            /**
                             * This field shall indicate an epoch time in seconds indicating the end time of a program, as aUTCtime. This
                             * field can represent a past or future value but shall be greater than the StartTime.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.4
                             */
                            endTime: import("../tlv/TlvObject.js").FieldType<number>;
                            /**
                             * This field shall indicate the title or name for the specific program. For example, “MCIS: Los Angeles”.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.5
                             */
                            title: import("../tlv/TlvObject.js").FieldType<string>;
                            /**
                             * This field shall indicate the subtitle for the specific program. For example, “Maybe Today" which is an
                             * episode name for “MCIS: Los Angeles”. This field is optional but shall be provided if applicable and known.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.6
                             */
                            subtitle: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                            /**
                             * This field shall indicate the brief description for the specific program. For example, a description of an
                             * episode. This field is optional but shall be provided if known.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.7
                             */
                            description: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                            /**
                             * This field shall indicate the audio language for the specific program. The value is a string containing one
                             * of the standard Tags for Identifying Languages RFC 5646. This field is optional but shall be provided if
                             * known.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.8
                             */
                            audioLanguages: import("../tlv/TlvObject.js").OptionalFieldType<string[]>;
                            /**
                             * This field shall be used for indicating the level of parental guidance recommended for of a particular
                             * program. This can be any rating system used in the country or region where the programisbroadcast. For
                             * example, in the United States “TV-PG” may contain material that parents can find not suitable for younger
                             * children but can be accepted in general for older children. This field is optional but shall be provided if
                             * known.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.9
                             */
                            ratings: import("../tlv/TlvObject.js").OptionalFieldType<string[]>;
                            /**
                             * This field shall represent a URL of a thumbnail that clients can use to render an image fortheprogram. The
                             * syntax of this field shall follow the syntax as specified in RFC 1738 and shall use the https scheme.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.10
                             */
                            thumbnailUrl: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                            /**
                             * This field shall represent a URL of a poster that clients can use to render an image for the program on the
                             * detail view. The syntax of this field shall follow the syntax as specified in RFC 1738 and shall use the
                             * https scheme.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.11
                             */
                            posterArtUrl: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                            /**
                             * This field shall represent the DVB-I URL associated to the program. The syntax of this field shall follow the
                             * syntax as specified in RFC 1738 and shall use the https scheme.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.12
                             */
                            dvbiUrl: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                            /**
                             * This field shall be a string, in ISO 8601 format, representing the date on which the programwasreleased. This
                             * field is optional but when provided, the year shall be provided as part of the string.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.13
                             */
                            releaseDate: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                            /**
                             * This field shall represent a string providing additional information on the parental guidance. This field is
                             * optional.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.14
                             */
                            parentalGuidanceText: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                            /**
                             * This field shall represent the recording status of the program. This field is required if the RecordProgram
                             * feature is set.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.15
                             */
                            recordingFlag: import("../tlv/TlvObject.js").OptionalFieldType<import("../schema/BitmapSchema.js").TypeFromPartialBitSchema<{
                                /**
                                 * The program is scheduled for recording.
                                 */
                                scheduled: BitFlag;
                                /**
                                 * The program series is scheduled for recording.
                                 */
                                recordSeries: BitFlag;
                                /**
                                 * The program is recorded and available to be played.
                                 */
                                recorded: BitFlag;
                            }>>;
                            /**
                             * This field shall represent the information of a series such as season and episode number. This field is
                             * optional but SHOULD be provided if the program represents a series and this information is available.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.16
                             */
                            seriesInfo: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                                /**
                                 * This field shall represent the season of the series associated to the program.
                                 *
                                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.9.1
                                 */
                                season: import("../tlv/TlvObject.js").FieldType<string>;
                                /**
                                 * This field shall represent the episode of the program.
                                 *
                                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.9.2
                                 */
                                episode: import("../tlv/TlvObject.js").FieldType<string>;
                            }> | null>;
                            /**
                             * This field shall represent the category of a particular program. This field is optional but shall be provided
                             * if known.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.17
                             */
                            categoryList: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                                /**
                                 * This field shall represent the category or genre of the program. Ex. News.
                                 *
                                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.8.1
                                 */
                                category: import("../tlv/TlvObject.js").FieldType<string>;
                                /**
                                 * This field shall represent the sub-category or sub-genre of the program. Ex. Local.
                                 *
                                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.8.2
                                 */
                                subCategory: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                            }>[]>;
                            /**
                             * This field shall represent a list of the cast or the crew on the program. A single cast member may have more
                             * than one role. This field is optional but shall be provided if known.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.18
                             */
                            castList: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                                /**
                                 * This field shall represent the name of the cast member.
                                 *
                                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.10.1
                                 */
                                name: import("../tlv/TlvObject.js").FieldType<string>;
                                /**
                                 * This field shall represent the role of the cast member. Ex. Actor, Director.
                                 *
                                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.10.2
                                 */
                                role: import("../tlv/TlvObject.js").FieldType<string>;
                            }>[]>;
                            /**
                             * This field shall indicate the list of additional external content identifiers.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.19
                             */
                            externalIdList: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                                name: import("../tlv/TlvObject.js").FieldType<string>;
                                value: import("../tlv/TlvObject.js").FieldType<string>;
                            }>[]>;
                        }>[]>;
                    }>, any>;
                };
            };
        }, {
            readonly flags: {
                readonly recordProgram: true;
                readonly electronicGuide: true;
            };
            readonly component: {
                readonly commands: {
                    /**
                     * Record a specific program or series when it goes live. This functionality enables DVR recording features.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.7
                     */
                    readonly recordProgram: Command<import("../tlv/TlvObject.js").TypeFromFields<{
                        /**
                         * This field shall indicate the program identifier for the program that should be recorded. This value is
                         * provided by the identifier field in ProgramStruct.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.7.1
                         */
                        programIdentifier: import("../tlv/TlvObject.js").FieldType<string>;
                        /**
                         * This field shall indicate whether the whole series associated to the program should be recorded. For example,
                         * invoking record program on an episode with that flag set to true, the target should schedule record the whole
                         * series.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.7.2
                         */
                        shouldRecordSeries: import("../tlv/TlvObject.js").FieldType<boolean>;
                        /**
                         * This field, if present, shall indicate the list of additional external content identifiers.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.7.3
                         */
                        externalIdList: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                            name: import("../tlv/TlvObject.js").FieldType<string>;
                            value: import("../tlv/TlvObject.js").FieldType<string>;
                        }>[]>;
                        /**
                         * This field, if present, shall indicate app-specific data.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.7.4
                         */
                        data: import("../tlv/TlvObject.js").OptionalFieldType<AllowSharedBufferSource>;
                    }>, void, any>;
                    /**
                     * Cancel recording for a specific program or series.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.8
                     */
                    readonly cancelRecordProgram: Command<import("../tlv/TlvObject.js").TypeFromFields<{
                        /**
                         * This field shall indicate the program identifier for the program that should be cancelledfromrecording. This
                         * value is provided by the identifier field in ProgramStruct.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.8.1
                         */
                        programIdentifier: import("../tlv/TlvObject.js").FieldType<string>;
                        /**
                         * This field shall indicate whether the whole series associated to the program should be cancelled from
                         * recording. For example, invoking record program on an episode with that flag set to true, the target should
                         * schedule record the whole series.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.8.2
                         */
                        shouldRecordSeries: import("../tlv/TlvObject.js").FieldType<boolean>;
                        /**
                         * This field, if present, shall indicate the list of additional external content identifiers.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.8.3
                         */
                        externalIdList: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                            name: import("../tlv/TlvObject.js").FieldType<string>;
                            value: import("../tlv/TlvObject.js").FieldType<string>;
                        }>[]>;
                        /**
                         * This field, if present, shall indicate app-specific data.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.8.4
                         */
                        data: import("../tlv/TlvObject.js").OptionalFieldType<AllowSharedBufferSource>;
                    }>, void, any>;
                };
            };
        }];
    };
    /**
     * @see {@link Cluster}
     */
    const ClusterInstance: MutableCluster<{
        readonly id: 1284;
        readonly name: "Channel";
        readonly revision: 2;
        readonly features: {
            /**
             * Provides list of available channels.
             */
            readonly channelList: BitFlag;
            /**
             * Provides lineup info, which is a reference to an external source of lineup information.
             */
            readonly lineupInfo: BitFlag;
            /**
             * Provides electronic program guide information.
             */
            readonly electronicGuide: BitFlag;
            /**
             * Provides ability to record program.
             */
            readonly recordProgram: BitFlag;
        };
        readonly attributes: {
            /**
             * This attribute shall contain the current channel. When supported but a channel is not currently tuned to
             * (if a content application is in foreground), the value of the field shall be null.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.6.3
             */
            readonly currentChannel: OptionalAttribute<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall indicate the channel major number value (for example, using ATSC format). When the channel
                 * number is expressed as a string, such as "13.1" or "256", the major number would be 13 or 256, respectively.
                 * This field is required but shall be set to 0 for channels such as over-the-top channels that are not
                 * represented by a major or minor number.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.1
                 */
                majorNumber: import("../tlv/TlvObject.js").FieldType<number>;
                /**
                 * This field shall indicate the channel minor number value (for example, using ATSC format). When the channel
                 * number is expressed as a string, such as "13.1" or "256", the minor number would be 1 or 0,respectively. This
                 * field is required but shall be set to 0 for channels such as over-the-top channels that are not represented
                 * by a major or minor number.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.2
                 */
                minorNumber: import("../tlv/TlvObject.js").FieldType<number>;
                /**
                 * This field shall indicate the marketing name for the channel, such as “The CW" or "Comedy Central". This
                 * field is optional, but SHOULD be provided when known.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.3
                 */
                name: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                /**
                 * This field shall indicate the call sign of the channel, such as "PBS". This field is optional, but SHOULD be
                 * provided when known.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.4
                 */
                callSign: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                /**
                 * This field shall indicate the local affiliate call sign, such as "KCTS". This field is optional, but SHOULD
                 * be provided when known.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.5
                 */
                affiliateCallSign: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                /**
                 * This shall indicate the unique identifier for a specific channel. This field is optional, but SHOULD be
                 * provided when MajorNumber and MinorNumber are not available.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.6
                 */
                identifier: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                /**
                 * This shall indicate the type or grouping of a specific channel. This field is optional, but SHOULD be
                 * provided when known.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.7
                 */
                type: import("../tlv/TlvObject.js").OptionalFieldType<ChannelType>;
            }> | null, any>;
        };
        readonly commands: {
            /**
             * Change the channel to the channel with the given Number in the ChannelList attribute.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.3
             */
            readonly changeChannelByNumber: Command<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall indicate the channel major number value (ATSC format) to which the channel should change.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.3.1
                 */
                majorNumber: import("../tlv/TlvObject.js").FieldType<number>;
                /**
                 * This field shall indicate the channel minor number value (ATSC format) to which the channel should change.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.3.2
                 */
                minorNumber: import("../tlv/TlvObject.js").FieldType<number>;
            }>, void, any>;
            /**
             * This command provides channel up and channel down functionality, but allows channel index jumps of size
             * Count.
             *
             * Jumps are relative to the available list of channels. For example, when the current channel is 100.0 and
             * the list of available channels is [100.0, 200.0, 201.0, 305.1], a SkipChannel command with jump value of
             * 2 shall change the channel to 201.0.
             *
             * When the value of the increase or decrease is larger than the number of channels remaining in the given
             * direction, then the behavior shall be to return to the beginning (or end) of the channel list and
             * continue. For example, if the current channel is at index 0 and count value of -1 is given, then the
             * current channel should change to the last channel.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.4
             */
            readonly skipChannel: Command<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall indicate the number of steps to increase (Count is positive) or decrease (Count is negative)
                 * the current channel.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.4.1
                 */
                count: import("../tlv/TlvObject.js").FieldType<number>;
            }>, void, any>;
        };
        /**
         * This metadata controls which ChannelCluster elements matter.js activates for specific feature combinations.
         */
        readonly extensions: readonly [{
            readonly flags: {
                readonly channelList: true;
            };
            readonly component: {
                readonly attributes: {
                    /**
                     * This attribute shall provide the list of supported channels.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.6.1
                     */
                    readonly channelList: Attribute<import("../tlv/TlvObject.js").TypeFromFields<{
                        /**
                         * This field shall indicate the channel major number value (for example, using ATSC format). When the channel
                         * number is expressed as a string, such as "13.1" or "256", the major number would be 13 or 256, respectively.
                         * This field is required but shall be set to 0 for channels such as over-the-top channels that are not
                         * represented by a major or minor number.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.1
                         */
                        majorNumber: import("../tlv/TlvObject.js").FieldType<number>;
                        /**
                         * This field shall indicate the channel minor number value (for example, using ATSC format). When the channel
                         * number is expressed as a string, such as "13.1" or "256", the minor number would be 1 or 0,respectively. This
                         * field is required but shall be set to 0 for channels such as over-the-top channels that are not represented
                         * by a major or minor number.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.2
                         */
                        minorNumber: import("../tlv/TlvObject.js").FieldType<number>;
                        /**
                         * This field shall indicate the marketing name for the channel, such as “The CW" or "Comedy Central". This
                         * field is optional, but SHOULD be provided when known.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.3
                         */
                        name: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                        /**
                         * This field shall indicate the call sign of the channel, such as "PBS". This field is optional, but SHOULD be
                         * provided when known.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.4
                         */
                        callSign: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                        /**
                         * This field shall indicate the local affiliate call sign, such as "KCTS". This field is optional, but SHOULD
                         * be provided when known.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.5
                         */
                        affiliateCallSign: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                        /**
                         * This shall indicate the unique identifier for a specific channel. This field is optional, but SHOULD be
                         * provided when MajorNumber and MinorNumber are not available.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.6
                         */
                        identifier: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                        /**
                         * This shall indicate the type or grouping of a specific channel. This field is optional, but SHOULD be
                         * provided when known.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.7
                         */
                        type: import("../tlv/TlvObject.js").OptionalFieldType<ChannelType>;
                    }>[], any>;
                };
            };
        }, {
            readonly flags: {
                readonly lineupInfo: true;
            };
            readonly component: {
                readonly attributes: {
                    /**
                     * This attribute shall identify the channel lineup using external data sources.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.6.2
                     */
                    readonly lineup: Attribute<import("../tlv/TlvObject.js").TypeFromFields<{
                        /**
                         * This field shall indicate the name of the operator, for example “Comcast”.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.6.1
                         */
                        operatorName: import("../tlv/TlvObject.js").FieldType<string>;
                        /**
                         * This field shall indicate the name of the provider lineup, for example "Comcast King County". This field is
                         * optional, but SHOULD be provided when known.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.6.2
                         */
                        lineupName: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                        /**
                         * This field shall indicate the postal code (zip code) for the location of the device, such as "98052". This
                         * field is optional, but SHOULD be provided when known.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.6.3
                         */
                        postalCode: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                        /**
                         * This field shall indicate the type of lineup. This field is optional, but SHOULD be provided when known.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.6.4
                         */
                        lineupInfoType: import("../tlv/TlvObject.js").FieldType<LineupInfoType>;
                    }> | null, any>;
                };
            };
        }, {
            readonly flags: {
                readonly channelList: true;
            };
            readonly component: {
                readonly commands: {
                    /**
                     * Change the channel to the channel case-insensitive exact matching the value passed as an argument.
                     *
                     * The match priority order shall be: Identifier, AffiliateCallSign, CallSign, Name, Number. In the match
                     * string, the Channel number should be presented in the "Major.Minor" format, such as "13.1".
                     *
                     * Upon receipt, this shall generate a ChangeChannelResponse command.
                     *
                     * Upon success, the CurrentChannel attribute, if supported, shall be updated to reflect the change.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.1
                     */
                    readonly changeChannel: Command<import("../tlv/TlvObject.js").TypeFromFields<{
                        /**
                         * This field shall contain a user-input string to match in order to identify the target channel.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.1.1
                         */
                        match: import("../tlv/TlvObject.js").FieldType<string>;
                    }>, import("../tlv/TlvObject.js").TypeFromFields<{
                        /**
                         * This field shall indicate the status of the command which resulted in this response.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.2.1
                         */
                        status: import("../tlv/TlvObject.js").FieldType<Status>;
                        /**
                         * This field shall indicate Optional app-specific data.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.2.2
                         */
                        data: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                    }>, any>;
                };
            };
        }, {
            readonly flags: {
                readonly lineupInfo: true;
            };
            readonly component: {
                readonly commands: {
                    /**
                     * Change the channel to the channel case-insensitive exact matching the value passed as an argument.
                     *
                     * The match priority order shall be: Identifier, AffiliateCallSign, CallSign, Name, Number. In the match
                     * string, the Channel number should be presented in the "Major.Minor" format, such as "13.1".
                     *
                     * Upon receipt, this shall generate a ChangeChannelResponse command.
                     *
                     * Upon success, the CurrentChannel attribute, if supported, shall be updated to reflect the change.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.1
                     */
                    readonly changeChannel: Command<import("../tlv/TlvObject.js").TypeFromFields<{
                        /**
                         * This field shall contain a user-input string to match in order to identify the target channel.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.1.1
                         */
                        match: import("../tlv/TlvObject.js").FieldType<string>;
                    }>, import("../tlv/TlvObject.js").TypeFromFields<{
                        /**
                         * This field shall indicate the status of the command which resulted in this response.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.2.1
                         */
                        status: import("../tlv/TlvObject.js").FieldType<Status>;
                        /**
                         * This field shall indicate Optional app-specific data.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.2.2
                         */
                        data: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                    }>, any>;
                };
            };
        }, {
            readonly flags: {
                readonly electronicGuide: true;
            };
            readonly component: {
                readonly commands: {
                    /**
                     * This command retrieves the program guide. It accepts several filter parameters to return specific
                     * schedule and program information from a content app. The command shall receive in
                     * responseaProgramGuideResponse. Standard error codes shall be used when arguments provided are not valid.
                     * For example, if StartTime is greater than EndTime, the status code INVALID_ACTION shall be returned.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.5
                     */
                    readonly getProgramGuide: Command<import("../tlv/TlvObject.js").TypeFromFields<{
                        /**
                         * This field shall indicate the beginning of the time window for which program guide entries are to be
                         * retrieved, as a UTC time. Entries with a start time on or after this value will be included in the results.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.5.1
                         */
                        startTime: import("../tlv/TlvObject.js").FieldType<number>;
                        /**
                         * This field shall indicate the end of the time window for which program guide entries are to be retrieved, as
                         * a UTC time. Entries with an end time on or before this value will be included intheresults. This field can
                         * represent a past or future value but shall be greater than the StartTime.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.5.2
                         */
                        endTime: import("../tlv/TlvObject.js").FieldType<number>;
                        /**
                         * This field shall indicate the set of channels for which program guide entries should be fetched. By providing
                         * a list of channels in this field, the response will only include entries corresponding to the specified
                         * channels.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.5.3
                         */
                        channelList: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                            /**
                             * This field shall indicate the channel major number value (for example, using ATSC format). When the channel
                             * number is expressed as a string, such as "13.1" or "256", the major number would be 13 or 256, respectively.
                             * This field is required but shall be set to 0 for channels such as over-the-top channels that are not
                             * represented by a major or minor number.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.1
                             */
                            majorNumber: import("../tlv/TlvObject.js").FieldType<number>;
                            /**
                             * This field shall indicate the channel minor number value (for example, using ATSC format). When the channel
                             * number is expressed as a string, such as "13.1" or "256", the minor number would be 1 or 0,respectively. This
                             * field is required but shall be set to 0 for channels such as over-the-top channels that are not represented
                             * by a major or minor number.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.2
                             */
                            minorNumber: import("../tlv/TlvObject.js").FieldType<number>;
                            /**
                             * This field shall indicate the marketing name for the channel, such as “The CW" or "Comedy Central". This
                             * field is optional, but SHOULD be provided when known.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.3
                             */
                            name: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                            /**
                             * This field shall indicate the call sign of the channel, such as "PBS". This field is optional, but SHOULD be
                             * provided when known.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.4
                             */
                            callSign: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                            /**
                             * This field shall indicate the local affiliate call sign, such as "KCTS". This field is optional, but SHOULD
                             * be provided when known.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.5
                             */
                            affiliateCallSign: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                            /**
                             * This shall indicate the unique identifier for a specific channel. This field is optional, but SHOULD be
                             * provided when MajorNumber and MinorNumber are not available.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.6
                             */
                            identifier: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                            /**
                             * This shall indicate the type or grouping of a specific channel. This field is optional, but SHOULD be
                             * provided when known.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.7
                             */
                            type: import("../tlv/TlvObject.js").OptionalFieldType<ChannelType>;
                        }>[]>;
                        /**
                         * This field shall indicate the pagination token used for managing pagination progression.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.5.4
                         */
                        pageToken: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                            /**
                             * This field shall indicate the maximum number of entries that should be retrieved from the program guide in a
                             * single response. It allows clients to specify the size of the paginated result set based on their needs.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.11.1
                             */
                            limit: import("../tlv/TlvObject.js").OptionalFieldType<number>;
                            /**
                             * This field shall indicate the cursor that pinpoints the start of the upcoming data page. In a Cursor-based
                             * pagination system, the field acts as a reference point, ensuring the set of results corresponds directly to
                             * the data following the specified cursor. In a Offset-based pagination system, the field, along with limit,
                             * indicate the offset from which entries in the program guide will be retrieved.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.11.2
                             */
                            after: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                            /**
                             * This field shall indicate the cursor that pinpoints the end of the upcoming data page. In a Cursor-based
                             * pagination system, the field acts as a reference point, ensuring the set of results corresponds directly to
                             * the data preceding the specified cursor. In a Offset-based pagination system, the field, along with limit,
                             * indicate the offset from which entries in the program guide will be retrieved.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.11.3
                             */
                            before: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                        }> | null>;
                        /**
                         * This field shall indicate the flags of the programs for which entries should be fetched.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.5.5
                         */
                        recordingFlag: import("../tlv/TlvObject.js").OptionalFieldType<import("../schema/BitmapSchema.js").TypeFromPartialBitSchema<{
                            /**
                             * The program is scheduled for recording.
                             */
                            scheduled: BitFlag;
                            /**
                             * The program series is scheduled for recording.
                             */
                            recordSeries: BitFlag;
                            /**
                             * The program is recorded and available to be played.
                             */
                            recorded: BitFlag;
                        }> | null>;
                        /**
                         * This field shall indicate the list of additional external content identifiers.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.5.6
                         */
                        externalIdList: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                            name: import("../tlv/TlvObject.js").FieldType<string>;
                            value: import("../tlv/TlvObject.js").FieldType<string>;
                        }>[]>;
                        /**
                         * This field shall indicate Optional app-specific data.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.5.7
                         */
                        data: import("../tlv/TlvObject.js").OptionalFieldType<AllowSharedBufferSource>;
                    }>, import("../tlv/TlvObject.js").TypeFromFields<{
                        /**
                         * This field shall indicate the necessary pagination attributes that define information for both the succeeding
                         * and preceding data pages.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.6.1
                         */
                        paging: import("../tlv/TlvObject.js").FieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                            /**
                             * This field shall indicate the token to retrieve the preceding page. Absence of this field denotes the
                             * response as the initial page.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.12.1
                             */
                            previousToken: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                                /**
                                 * This field shall indicate the maximum number of entries that should be retrieved from the program guide in a
                                 * single response. It allows clients to specify the size of the paginated result set based on their needs.
                                 *
                                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.11.1
                                 */
                                limit: import("../tlv/TlvObject.js").OptionalFieldType<number>;
                                /**
                                 * This field shall indicate the cursor that pinpoints the start of the upcoming data page. In a Cursor-based
                                 * pagination system, the field acts as a reference point, ensuring the set of results corresponds directly to
                                 * the data following the specified cursor. In a Offset-based pagination system, the field, along with limit,
                                 * indicate the offset from which entries in the program guide will be retrieved.
                                 *
                                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.11.2
                                 */
                                after: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                                /**
                                 * This field shall indicate the cursor that pinpoints the end of the upcoming data page. In a Cursor-based
                                 * pagination system, the field acts as a reference point, ensuring the set of results corresponds directly to
                                 * the data preceding the specified cursor. In a Offset-based pagination system, the field, along with limit,
                                 * indicate the offset from which entries in the program guide will be retrieved.
                                 *
                                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.11.3
                                 */
                                before: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                            }> | null>;
                            /**
                             * This field shall indicate the token to retrieve the next page. Absence of this field denotes the response as
                             * the last page.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.12.2
                             */
                            nextToken: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                                /**
                                 * This field shall indicate the maximum number of entries that should be retrieved from the program guide in a
                                 * single response. It allows clients to specify the size of the paginated result set based on their needs.
                                 *
                                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.11.1
                                 */
                                limit: import("../tlv/TlvObject.js").OptionalFieldType<number>;
                                /**
                                 * This field shall indicate the cursor that pinpoints the start of the upcoming data page. In a Cursor-based
                                 * pagination system, the field acts as a reference point, ensuring the set of results corresponds directly to
                                 * the data following the specified cursor. In a Offset-based pagination system, the field, along with limit,
                                 * indicate the offset from which entries in the program guide will be retrieved.
                                 *
                                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.11.2
                                 */
                                after: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                                /**
                                 * This field shall indicate the cursor that pinpoints the end of the upcoming data page. In a Cursor-based
                                 * pagination system, the field acts as a reference point, ensuring the set of results corresponds directly to
                                 * the data preceding the specified cursor. In a Offset-based pagination system, the field, along with limit,
                                 * indicate the offset from which entries in the program guide will be retrieved.
                                 *
                                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.11.3
                                 */
                                before: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                            }> | null>;
                        }>>;
                        /**
                         * This field shall indicate the list of programs.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.6.2
                         */
                        programList: import("../tlv/TlvObject.js").FieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                            /**
                             * This field shall indicate a unique identifier for a program within an electronic program guide list. The
                             * identifier shall be unique across multiple channels.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.1
                             */
                            identifier: import("../tlv/TlvObject.js").FieldType<string>;
                            /**
                             * This field shall indicate the channel associated to the program.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.2
                             */
                            channel: import("../tlv/TlvObject.js").FieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                                /**
                                 * This field shall indicate the channel major number value (for example, using ATSC format). When the channel
                                 * number is expressed as a string, such as "13.1" or "256", the major number would be 13 or 256, respectively.
                                 * This field is required but shall be set to 0 for channels such as over-the-top channels that are not
                                 * represented by a major or minor number.
                                 *
                                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.1
                                 */
                                majorNumber: import("../tlv/TlvObject.js").FieldType<number>;
                                /**
                                 * This field shall indicate the channel minor number value (for example, using ATSC format). When the channel
                                 * number is expressed as a string, such as "13.1" or "256", the minor number would be 1 or 0,respectively. This
                                 * field is required but shall be set to 0 for channels such as over-the-top channels that are not represented
                                 * by a major or minor number.
                                 *
                                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.2
                                 */
                                minorNumber: import("../tlv/TlvObject.js").FieldType<number>;
                                /**
                                 * This field shall indicate the marketing name for the channel, such as “The CW" or "Comedy Central". This
                                 * field is optional, but SHOULD be provided when known.
                                 *
                                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.3
                                 */
                                name: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                                /**
                                 * This field shall indicate the call sign of the channel, such as "PBS". This field is optional, but SHOULD be
                                 * provided when known.
                                 *
                                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.4
                                 */
                                callSign: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                                /**
                                 * This field shall indicate the local affiliate call sign, such as "KCTS". This field is optional, but SHOULD
                                 * be provided when known.
                                 *
                                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.5
                                 */
                                affiliateCallSign: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                                /**
                                 * This shall indicate the unique identifier for a specific channel. This field is optional, but SHOULD be
                                 * provided when MajorNumber and MinorNumber are not available.
                                 *
                                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.6
                                 */
                                identifier: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                                /**
                                 * This shall indicate the type or grouping of a specific channel. This field is optional, but SHOULD be
                                 * provided when known.
                                 *
                                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.7
                                 */
                                type: import("../tlv/TlvObject.js").OptionalFieldType<ChannelType>;
                            }>>;
                            /**
                             * This field shall indicate an epoch time in seconds indicating the start time of a program, as aUTCtime. This
                             * field can represent a past or future value.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.3
                             */
                            startTime: import("../tlv/TlvObject.js").FieldType<number>;
                            /**
                             * This field shall indicate an epoch time in seconds indicating the end time of a program, as aUTCtime. This
                             * field can represent a past or future value but shall be greater than the StartTime.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.4
                             */
                            endTime: import("../tlv/TlvObject.js").FieldType<number>;
                            /**
                             * This field shall indicate the title or name for the specific program. For example, “MCIS: Los Angeles”.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.5
                             */
                            title: import("../tlv/TlvObject.js").FieldType<string>;
                            /**
                             * This field shall indicate the subtitle for the specific program. For example, “Maybe Today" which is an
                             * episode name for “MCIS: Los Angeles”. This field is optional but shall be provided if applicable and known.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.6
                             */
                            subtitle: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                            /**
                             * This field shall indicate the brief description for the specific program. For example, a description of an
                             * episode. This field is optional but shall be provided if known.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.7
                             */
                            description: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                            /**
                             * This field shall indicate the audio language for the specific program. The value is a string containing one
                             * of the standard Tags for Identifying Languages RFC 5646. This field is optional but shall be provided if
                             * known.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.8
                             */
                            audioLanguages: import("../tlv/TlvObject.js").OptionalFieldType<string[]>;
                            /**
                             * This field shall be used for indicating the level of parental guidance recommended for of a particular
                             * program. This can be any rating system used in the country or region where the programisbroadcast. For
                             * example, in the United States “TV-PG” may contain material that parents can find not suitable for younger
                             * children but can be accepted in general for older children. This field is optional but shall be provided if
                             * known.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.9
                             */
                            ratings: import("../tlv/TlvObject.js").OptionalFieldType<string[]>;
                            /**
                             * This field shall represent a URL of a thumbnail that clients can use to render an image fortheprogram. The
                             * syntax of this field shall follow the syntax as specified in RFC 1738 and shall use the https scheme.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.10
                             */
                            thumbnailUrl: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                            /**
                             * This field shall represent a URL of a poster that clients can use to render an image for the program on the
                             * detail view. The syntax of this field shall follow the syntax as specified in RFC 1738 and shall use the
                             * https scheme.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.11
                             */
                            posterArtUrl: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                            /**
                             * This field shall represent the DVB-I URL associated to the program. The syntax of this field shall follow the
                             * syntax as specified in RFC 1738 and shall use the https scheme.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.12
                             */
                            dvbiUrl: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                            /**
                             * This field shall be a string, in ISO 8601 format, representing the date on which the programwasreleased. This
                             * field is optional but when provided, the year shall be provided as part of the string.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.13
                             */
                            releaseDate: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                            /**
                             * This field shall represent a string providing additional information on the parental guidance. This field is
                             * optional.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.14
                             */
                            parentalGuidanceText: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                            /**
                             * This field shall represent the recording status of the program. This field is required if the RecordProgram
                             * feature is set.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.15
                             */
                            recordingFlag: import("../tlv/TlvObject.js").OptionalFieldType<import("../schema/BitmapSchema.js").TypeFromPartialBitSchema<{
                                /**
                                 * The program is scheduled for recording.
                                 */
                                scheduled: BitFlag;
                                /**
                                 * The program series is scheduled for recording.
                                 */
                                recordSeries: BitFlag;
                                /**
                                 * The program is recorded and available to be played.
                                 */
                                recorded: BitFlag;
                            }>>;
                            /**
                             * This field shall represent the information of a series such as season and episode number. This field is
                             * optional but SHOULD be provided if the program represents a series and this information is available.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.16
                             */
                            seriesInfo: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                                /**
                                 * This field shall represent the season of the series associated to the program.
                                 *
                                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.9.1
                                 */
                                season: import("../tlv/TlvObject.js").FieldType<string>;
                                /**
                                 * This field shall represent the episode of the program.
                                 *
                                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.9.2
                                 */
                                episode: import("../tlv/TlvObject.js").FieldType<string>;
                            }> | null>;
                            /**
                             * This field shall represent the category of a particular program. This field is optional but shall be provided
                             * if known.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.17
                             */
                            categoryList: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                                /**
                                 * This field shall represent the category or genre of the program. Ex. News.
                                 *
                                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.8.1
                                 */
                                category: import("../tlv/TlvObject.js").FieldType<string>;
                                /**
                                 * This field shall represent the sub-category or sub-genre of the program. Ex. Local.
                                 *
                                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.8.2
                                 */
                                subCategory: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                            }>[]>;
                            /**
                             * This field shall represent a list of the cast or the crew on the program. A single cast member may have more
                             * than one role. This field is optional but shall be provided if known.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.18
                             */
                            castList: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                                /**
                                 * This field shall represent the name of the cast member.
                                 *
                                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.10.1
                                 */
                                name: import("../tlv/TlvObject.js").FieldType<string>;
                                /**
                                 * This field shall represent the role of the cast member. Ex. Actor, Director.
                                 *
                                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.10.2
                                 */
                                role: import("../tlv/TlvObject.js").FieldType<string>;
                            }>[]>;
                            /**
                             * This field shall indicate the list of additional external content identifiers.
                             *
                             * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.19
                             */
                            externalIdList: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                                name: import("../tlv/TlvObject.js").FieldType<string>;
                                value: import("../tlv/TlvObject.js").FieldType<string>;
                            }>[]>;
                        }>[]>;
                    }>, any>;
                };
            };
        }, {
            readonly flags: {
                readonly recordProgram: true;
                readonly electronicGuide: true;
            };
            readonly component: {
                readonly commands: {
                    /**
                     * Record a specific program or series when it goes live. This functionality enables DVR recording features.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.7
                     */
                    readonly recordProgram: Command<import("../tlv/TlvObject.js").TypeFromFields<{
                        /**
                         * This field shall indicate the program identifier for the program that should be recorded. This value is
                         * provided by the identifier field in ProgramStruct.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.7.1
                         */
                        programIdentifier: import("../tlv/TlvObject.js").FieldType<string>;
                        /**
                         * This field shall indicate whether the whole series associated to the program should be recorded. For example,
                         * invoking record program on an episode with that flag set to true, the target should schedule record the whole
                         * series.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.7.2
                         */
                        shouldRecordSeries: import("../tlv/TlvObject.js").FieldType<boolean>;
                        /**
                         * This field, if present, shall indicate the list of additional external content identifiers.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.7.3
                         */
                        externalIdList: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                            name: import("../tlv/TlvObject.js").FieldType<string>;
                            value: import("../tlv/TlvObject.js").FieldType<string>;
                        }>[]>;
                        /**
                         * This field, if present, shall indicate app-specific data.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.7.4
                         */
                        data: import("../tlv/TlvObject.js").OptionalFieldType<AllowSharedBufferSource>;
                    }>, void, any>;
                    /**
                     * Cancel recording for a specific program or series.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.8
                     */
                    readonly cancelRecordProgram: Command<import("../tlv/TlvObject.js").TypeFromFields<{
                        /**
                         * This field shall indicate the program identifier for the program that should be cancelledfromrecording. This
                         * value is provided by the identifier field in ProgramStruct.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.8.1
                         */
                        programIdentifier: import("../tlv/TlvObject.js").FieldType<string>;
                        /**
                         * This field shall indicate whether the whole series associated to the program should be cancelled from
                         * recording. For example, invoking record program on an episode with that flag set to true, the target should
                         * schedule record the whole series.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.8.2
                         */
                        shouldRecordSeries: import("../tlv/TlvObject.js").FieldType<boolean>;
                        /**
                         * This field, if present, shall indicate the list of additional external content identifiers.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.8.3
                         */
                        externalIdList: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                            name: import("../tlv/TlvObject.js").FieldType<string>;
                            value: import("../tlv/TlvObject.js").FieldType<string>;
                        }>[]>;
                        /**
                         * This field, if present, shall indicate app-specific data.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.8.4
                         */
                        data: import("../tlv/TlvObject.js").OptionalFieldType<AllowSharedBufferSource>;
                    }>, void, any>;
                };
            };
        }];
    }, []>;
    /**
     * This cluster provides an interface for controlling the current Channel on a device or endpoint.
     *
     * This cluster server would be supported on Video Player devices or endpoints that allow Channel control such as a
     * Content App. This cluster provides a list of available channels and provides commands for absolute and relative
     * channel changes. Some of these commands and/or their responses may be large (see Large Message Quality under Data
     * Model section in [MatterCore]), but they do not have the Large quality indicator (L) because they can also be
     * transferred over MRP (see Message Reliability Protocol in [MatterCore]) in pages that fit within the MRP MTU
     * limit. However, an implementation may leverage a transport like TCP that allows large payloads, if available, to
     * minimize the number of messages required to transfer the corresponding payload.
     *
     * The cluster server for Channel is implemented by an endpoint that controls the current Channel.
     *
     * ChannelCluster supports optional features that you can enable with the ChannelCluster.with() factory method.
     *
     * @see {@link MatterSpecification.v142.Cluster} § 6.6
     */
    interface Cluster extends Identity<typeof ClusterInstance> {
    }
    const Cluster: Cluster;
    /**
     * @see {@link Complete}
     */
    const CompleteInstance: MutableCluster<{
        readonly id: import("#general").Branded<1284, "ClusterId">;
        readonly name: "Channel";
        readonly revision: 2;
        readonly features: {
            /**
             * Provides list of available channels.
             */
            readonly channelList: BitFlag;
            /**
             * Provides lineup info, which is a reference to an external source of lineup information.
             */
            readonly lineupInfo: BitFlag;
            /**
             * Provides electronic program guide information.
             */
            readonly electronicGuide: BitFlag;
            /**
             * Provides ability to record program.
             */
            readonly recordProgram: BitFlag;
        };
        readonly attributes: {
            readonly channelList: Attribute<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall indicate the channel major number value (for example, using ATSC format). When the channel
                 * number is expressed as a string, such as "13.1" or "256", the major number would be 13 or 256, respectively.
                 * This field is required but shall be set to 0 for channels such as over-the-top channels that are not
                 * represented by a major or minor number.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.1
                 */
                majorNumber: import("../tlv/TlvObject.js").FieldType<number>;
                /**
                 * This field shall indicate the channel minor number value (for example, using ATSC format). When the channel
                 * number is expressed as a string, such as "13.1" or "256", the minor number would be 1 or 0,respectively. This
                 * field is required but shall be set to 0 for channels such as over-the-top channels that are not represented
                 * by a major or minor number.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.2
                 */
                minorNumber: import("../tlv/TlvObject.js").FieldType<number>;
                /**
                 * This field shall indicate the marketing name for the channel, such as “The CW" or "Comedy Central". This
                 * field is optional, but SHOULD be provided when known.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.3
                 */
                name: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                /**
                 * This field shall indicate the call sign of the channel, such as "PBS". This field is optional, but SHOULD be
                 * provided when known.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.4
                 */
                callSign: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                /**
                 * This field shall indicate the local affiliate call sign, such as "KCTS". This field is optional, but SHOULD
                 * be provided when known.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.5
                 */
                affiliateCallSign: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                /**
                 * This shall indicate the unique identifier for a specific channel. This field is optional, but SHOULD be
                 * provided when MajorNumber and MinorNumber are not available.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.6
                 */
                identifier: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                /**
                 * This shall indicate the type or grouping of a specific channel. This field is optional, but SHOULD be
                 * provided when known.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.7
                 */
                type: import("../tlv/TlvObject.js").OptionalFieldType<ChannelType>;
            }>[], any> & {
                readonly optional: true;
                readonly isConditional: true;
                readonly optionalIf: [] | import("../cluster/Cluster.js").ConditionalFeatureList<import("../schema/BitmapSchema.js").BitSchema>;
                readonly mandatoryIf: [] | [{
                    channelList: boolean;
                }];
            };
            readonly lineup: Attribute<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall indicate the name of the operator, for example “Comcast”.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.6.1
                 */
                operatorName: import("../tlv/TlvObject.js").FieldType<string>;
                /**
                 * This field shall indicate the name of the provider lineup, for example "Comcast King County". This field is
                 * optional, but SHOULD be provided when known.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.6.2
                 */
                lineupName: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                /**
                 * This field shall indicate the postal code (zip code) for the location of the device, such as "98052". This
                 * field is optional, but SHOULD be provided when known.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.6.3
                 */
                postalCode: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                /**
                 * This field shall indicate the type of lineup. This field is optional, but SHOULD be provided when known.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.6.4
                 */
                lineupInfoType: import("../tlv/TlvObject.js").FieldType<LineupInfoType>;
            }> | null, any> & {
                readonly optional: true;
                readonly isConditional: true;
                readonly optionalIf: [] | import("../cluster/Cluster.js").ConditionalFeatureList<import("../schema/BitmapSchema.js").BitSchema>;
                readonly mandatoryIf: [] | [{
                    lineupInfo: boolean;
                }];
            };
            readonly currentChannel: OptionalAttribute<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall indicate the channel major number value (for example, using ATSC format). When the channel
                 * number is expressed as a string, such as "13.1" or "256", the major number would be 13 or 256, respectively.
                 * This field is required but shall be set to 0 for channels such as over-the-top channels that are not
                 * represented by a major or minor number.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.1
                 */
                majorNumber: import("../tlv/TlvObject.js").FieldType<number>;
                /**
                 * This field shall indicate the channel minor number value (for example, using ATSC format). When the channel
                 * number is expressed as a string, such as "13.1" or "256", the minor number would be 1 or 0,respectively. This
                 * field is required but shall be set to 0 for channels such as over-the-top channels that are not represented
                 * by a major or minor number.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.2
                 */
                minorNumber: import("../tlv/TlvObject.js").FieldType<number>;
                /**
                 * This field shall indicate the marketing name for the channel, such as “The CW" or "Comedy Central". This
                 * field is optional, but SHOULD be provided when known.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.3
                 */
                name: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                /**
                 * This field shall indicate the call sign of the channel, such as "PBS". This field is optional, but SHOULD be
                 * provided when known.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.4
                 */
                callSign: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                /**
                 * This field shall indicate the local affiliate call sign, such as "KCTS". This field is optional, but SHOULD
                 * be provided when known.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.5
                 */
                affiliateCallSign: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                /**
                 * This shall indicate the unique identifier for a specific channel. This field is optional, but SHOULD be
                 * provided when MajorNumber and MinorNumber are not available.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.6
                 */
                identifier: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                /**
                 * This shall indicate the type or grouping of a specific channel. This field is optional, but SHOULD be
                 * provided when known.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.7
                 */
                type: import("../tlv/TlvObject.js").OptionalFieldType<ChannelType>;
            }> | null, any>;
            readonly clusterRevision: Attribute<number, never>;
            readonly featureMap: Attribute<import("../schema/BitmapSchema.js").TypeFromPartialBitSchema<{
                /**
                 * Provides list of available channels.
                 */
                readonly channelList: BitFlag;
                /**
                 * Provides lineup info, which is a reference to an external source of lineup information.
                 */
                readonly lineupInfo: BitFlag;
                /**
                 * Provides electronic program guide information.
                 */
                readonly electronicGuide: BitFlag;
                /**
                 * Provides ability to record program.
                 */
                readonly recordProgram: BitFlag;
            }>, never>;
            readonly attributeList: Attribute<import("../index.js").AttributeId[], never>;
            readonly acceptedCommandList: Attribute<import("../index.js").CommandId[], never>;
            readonly generatedCommandList: Attribute<import("../index.js").CommandId[], never>;
        };
        readonly commands: {
            readonly changeChannel: Command<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall contain a user-input string to match in order to identify the target channel.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.1.1
                 */
                match: import("../tlv/TlvObject.js").FieldType<string>;
            }>, import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall indicate the status of the command which resulted in this response.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.2.1
                 */
                status: import("../tlv/TlvObject.js").FieldType<Status>;
                /**
                 * This field shall indicate Optional app-specific data.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.2.2
                 */
                data: import("../tlv/TlvObject.js").OptionalFieldType<string>;
            }>, any> & {
                readonly optional: true;
                readonly isConditional: true;
                readonly optionalIf: [] | import("../cluster/Cluster.js").ConditionalFeatureList<import("../schema/BitmapSchema.js").BitSchema>;
                readonly mandatoryIf: [] | [{
                    channelList: boolean;
                }, {
                    lineupInfo: boolean;
                }];
            };
            readonly getProgramGuide: Command<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall indicate the beginning of the time window for which program guide entries are to be
                 * retrieved, as a UTC time. Entries with a start time on or after this value will be included in the results.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.5.1
                 */
                startTime: import("../tlv/TlvObject.js").FieldType<number>;
                /**
                 * This field shall indicate the end of the time window for which program guide entries are to be retrieved, as
                 * a UTC time. Entries with an end time on or before this value will be included intheresults. This field can
                 * represent a past or future value but shall be greater than the StartTime.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.5.2
                 */
                endTime: import("../tlv/TlvObject.js").FieldType<number>;
                /**
                 * This field shall indicate the set of channels for which program guide entries should be fetched. By providing
                 * a list of channels in this field, the response will only include entries corresponding to the specified
                 * channels.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.5.3
                 */
                channelList: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                    /**
                     * This field shall indicate the channel major number value (for example, using ATSC format). When the channel
                     * number is expressed as a string, such as "13.1" or "256", the major number would be 13 or 256, respectively.
                     * This field is required but shall be set to 0 for channels such as over-the-top channels that are not
                     * represented by a major or minor number.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.1
                     */
                    majorNumber: import("../tlv/TlvObject.js").FieldType<number>;
                    /**
                     * This field shall indicate the channel minor number value (for example, using ATSC format). When the channel
                     * number is expressed as a string, such as "13.1" or "256", the minor number would be 1 or 0,respectively. This
                     * field is required but shall be set to 0 for channels such as over-the-top channels that are not represented
                     * by a major or minor number.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.2
                     */
                    minorNumber: import("../tlv/TlvObject.js").FieldType<number>;
                    /**
                     * This field shall indicate the marketing name for the channel, such as “The CW" or "Comedy Central". This
                     * field is optional, but SHOULD be provided when known.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.3
                     */
                    name: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                    /**
                     * This field shall indicate the call sign of the channel, such as "PBS". This field is optional, but SHOULD be
                     * provided when known.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.4
                     */
                    callSign: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                    /**
                     * This field shall indicate the local affiliate call sign, such as "KCTS". This field is optional, but SHOULD
                     * be provided when known.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.5
                     */
                    affiliateCallSign: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                    /**
                     * This shall indicate the unique identifier for a specific channel. This field is optional, but SHOULD be
                     * provided when MajorNumber and MinorNumber are not available.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.6
                     */
                    identifier: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                    /**
                     * This shall indicate the type or grouping of a specific channel. This field is optional, but SHOULD be
                     * provided when known.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.7
                     */
                    type: import("../tlv/TlvObject.js").OptionalFieldType<ChannelType>;
                }>[]>;
                /**
                 * This field shall indicate the pagination token used for managing pagination progression.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.5.4
                 */
                pageToken: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                    /**
                     * This field shall indicate the maximum number of entries that should be retrieved from the program guide in a
                     * single response. It allows clients to specify the size of the paginated result set based on their needs.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.11.1
                     */
                    limit: import("../tlv/TlvObject.js").OptionalFieldType<number>;
                    /**
                     * This field shall indicate the cursor that pinpoints the start of the upcoming data page. In a Cursor-based
                     * pagination system, the field acts as a reference point, ensuring the set of results corresponds directly to
                     * the data following the specified cursor. In a Offset-based pagination system, the field, along with limit,
                     * indicate the offset from which entries in the program guide will be retrieved.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.11.2
                     */
                    after: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                    /**
                     * This field shall indicate the cursor that pinpoints the end of the upcoming data page. In a Cursor-based
                     * pagination system, the field acts as a reference point, ensuring the set of results corresponds directly to
                     * the data preceding the specified cursor. In a Offset-based pagination system, the field, along with limit,
                     * indicate the offset from which entries in the program guide will be retrieved.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.11.3
                     */
                    before: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                }> | null>;
                /**
                 * This field shall indicate the flags of the programs for which entries should be fetched.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.5.5
                 */
                recordingFlag: import("../tlv/TlvObject.js").OptionalFieldType<import("../schema/BitmapSchema.js").TypeFromPartialBitSchema<{
                    /**
                     * The program is scheduled for recording.
                     */
                    scheduled: BitFlag;
                    /**
                     * The program series is scheduled for recording.
                     */
                    recordSeries: BitFlag;
                    /**
                     * The program is recorded and available to be played.
                     */
                    recorded: BitFlag;
                }> | null>;
                /**
                 * This field shall indicate the list of additional external content identifiers.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.5.6
                 */
                externalIdList: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                    name: import("../tlv/TlvObject.js").FieldType<string>;
                    value: import("../tlv/TlvObject.js").FieldType<string>;
                }>[]>;
                /**
                 * This field shall indicate Optional app-specific data.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.5.7
                 */
                data: import("../tlv/TlvObject.js").OptionalFieldType<AllowSharedBufferSource>;
            }>, import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall indicate the necessary pagination attributes that define information for both the succeeding
                 * and preceding data pages.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.6.1
                 */
                paging: import("../tlv/TlvObject.js").FieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                    /**
                     * This field shall indicate the token to retrieve the preceding page. Absence of this field denotes the
                     * response as the initial page.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.12.1
                     */
                    previousToken: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                        /**
                         * This field shall indicate the maximum number of entries that should be retrieved from the program guide in a
                         * single response. It allows clients to specify the size of the paginated result set based on their needs.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.11.1
                         */
                        limit: import("../tlv/TlvObject.js").OptionalFieldType<number>;
                        /**
                         * This field shall indicate the cursor that pinpoints the start of the upcoming data page. In a Cursor-based
                         * pagination system, the field acts as a reference point, ensuring the set of results corresponds directly to
                         * the data following the specified cursor. In a Offset-based pagination system, the field, along with limit,
                         * indicate the offset from which entries in the program guide will be retrieved.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.11.2
                         */
                        after: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                        /**
                         * This field shall indicate the cursor that pinpoints the end of the upcoming data page. In a Cursor-based
                         * pagination system, the field acts as a reference point, ensuring the set of results corresponds directly to
                         * the data preceding the specified cursor. In a Offset-based pagination system, the field, along with limit,
                         * indicate the offset from which entries in the program guide will be retrieved.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.11.3
                         */
                        before: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                    }> | null>;
                    /**
                     * This field shall indicate the token to retrieve the next page. Absence of this field denotes the response as
                     * the last page.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.12.2
                     */
                    nextToken: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                        /**
                         * This field shall indicate the maximum number of entries that should be retrieved from the program guide in a
                         * single response. It allows clients to specify the size of the paginated result set based on their needs.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.11.1
                         */
                        limit: import("../tlv/TlvObject.js").OptionalFieldType<number>;
                        /**
                         * This field shall indicate the cursor that pinpoints the start of the upcoming data page. In a Cursor-based
                         * pagination system, the field acts as a reference point, ensuring the set of results corresponds directly to
                         * the data following the specified cursor. In a Offset-based pagination system, the field, along with limit,
                         * indicate the offset from which entries in the program guide will be retrieved.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.11.2
                         */
                        after: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                        /**
                         * This field shall indicate the cursor that pinpoints the end of the upcoming data page. In a Cursor-based
                         * pagination system, the field acts as a reference point, ensuring the set of results corresponds directly to
                         * the data preceding the specified cursor. In a Offset-based pagination system, the field, along with limit,
                         * indicate the offset from which entries in the program guide will be retrieved.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.11.3
                         */
                        before: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                    }> | null>;
                }>>;
                /**
                 * This field shall indicate the list of programs.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.6.2
                 */
                programList: import("../tlv/TlvObject.js").FieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                    /**
                     * This field shall indicate a unique identifier for a program within an electronic program guide list. The
                     * identifier shall be unique across multiple channels.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.1
                     */
                    identifier: import("../tlv/TlvObject.js").FieldType<string>;
                    /**
                     * This field shall indicate the channel associated to the program.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.2
                     */
                    channel: import("../tlv/TlvObject.js").FieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                        /**
                         * This field shall indicate the channel major number value (for example, using ATSC format). When the channel
                         * number is expressed as a string, such as "13.1" or "256", the major number would be 13 or 256, respectively.
                         * This field is required but shall be set to 0 for channels such as over-the-top channels that are not
                         * represented by a major or minor number.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.1
                         */
                        majorNumber: import("../tlv/TlvObject.js").FieldType<number>;
                        /**
                         * This field shall indicate the channel minor number value (for example, using ATSC format). When the channel
                         * number is expressed as a string, such as "13.1" or "256", the minor number would be 1 or 0,respectively. This
                         * field is required but shall be set to 0 for channels such as over-the-top channels that are not represented
                         * by a major or minor number.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.2
                         */
                        minorNumber: import("../tlv/TlvObject.js").FieldType<number>;
                        /**
                         * This field shall indicate the marketing name for the channel, such as “The CW" or "Comedy Central". This
                         * field is optional, but SHOULD be provided when known.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.3
                         */
                        name: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                        /**
                         * This field shall indicate the call sign of the channel, such as "PBS". This field is optional, but SHOULD be
                         * provided when known.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.4
                         */
                        callSign: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                        /**
                         * This field shall indicate the local affiliate call sign, such as "KCTS". This field is optional, but SHOULD
                         * be provided when known.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.5
                         */
                        affiliateCallSign: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                        /**
                         * This shall indicate the unique identifier for a specific channel. This field is optional, but SHOULD be
                         * provided when MajorNumber and MinorNumber are not available.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.6
                         */
                        identifier: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                        /**
                         * This shall indicate the type or grouping of a specific channel. This field is optional, but SHOULD be
                         * provided when known.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.5.7
                         */
                        type: import("../tlv/TlvObject.js").OptionalFieldType<ChannelType>;
                    }>>;
                    /**
                     * This field shall indicate an epoch time in seconds indicating the start time of a program, as aUTCtime. This
                     * field can represent a past or future value.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.3
                     */
                    startTime: import("../tlv/TlvObject.js").FieldType<number>;
                    /**
                     * This field shall indicate an epoch time in seconds indicating the end time of a program, as aUTCtime. This
                     * field can represent a past or future value but shall be greater than the StartTime.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.4
                     */
                    endTime: import("../tlv/TlvObject.js").FieldType<number>;
                    /**
                     * This field shall indicate the title or name for the specific program. For example, “MCIS: Los Angeles”.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.5
                     */
                    title: import("../tlv/TlvObject.js").FieldType<string>;
                    /**
                     * This field shall indicate the subtitle for the specific program. For example, “Maybe Today" which is an
                     * episode name for “MCIS: Los Angeles”. This field is optional but shall be provided if applicable and known.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.6
                     */
                    subtitle: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                    /**
                     * This field shall indicate the brief description for the specific program. For example, a description of an
                     * episode. This field is optional but shall be provided if known.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.7
                     */
                    description: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                    /**
                     * This field shall indicate the audio language for the specific program. The value is a string containing one
                     * of the standard Tags for Identifying Languages RFC 5646. This field is optional but shall be provided if
                     * known.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.8
                     */
                    audioLanguages: import("../tlv/TlvObject.js").OptionalFieldType<string[]>;
                    /**
                     * This field shall be used for indicating the level of parental guidance recommended for of a particular
                     * program. This can be any rating system used in the country or region where the programisbroadcast. For
                     * example, in the United States “TV-PG” may contain material that parents can find not suitable for younger
                     * children but can be accepted in general for older children. This field is optional but shall be provided if
                     * known.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.9
                     */
                    ratings: import("../tlv/TlvObject.js").OptionalFieldType<string[]>;
                    /**
                     * This field shall represent a URL of a thumbnail that clients can use to render an image fortheprogram. The
                     * syntax of this field shall follow the syntax as specified in RFC 1738 and shall use the https scheme.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.10
                     */
                    thumbnailUrl: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                    /**
                     * This field shall represent a URL of a poster that clients can use to render an image for the program on the
                     * detail view. The syntax of this field shall follow the syntax as specified in RFC 1738 and shall use the
                     * https scheme.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.11
                     */
                    posterArtUrl: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                    /**
                     * This field shall represent the DVB-I URL associated to the program. The syntax of this field shall follow the
                     * syntax as specified in RFC 1738 and shall use the https scheme.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.12
                     */
                    dvbiUrl: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                    /**
                     * This field shall be a string, in ISO 8601 format, representing the date on which the programwasreleased. This
                     * field is optional but when provided, the year shall be provided as part of the string.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.13
                     */
                    releaseDate: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                    /**
                     * This field shall represent a string providing additional information on the parental guidance. This field is
                     * optional.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.14
                     */
                    parentalGuidanceText: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                    /**
                     * This field shall represent the recording status of the program. This field is required if the RecordProgram
                     * feature is set.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.15
                     */
                    recordingFlag: import("../tlv/TlvObject.js").OptionalFieldType<import("../schema/BitmapSchema.js").TypeFromPartialBitSchema<{
                        /**
                         * The program is scheduled for recording.
                         */
                        scheduled: BitFlag;
                        /**
                         * The program series is scheduled for recording.
                         */
                        recordSeries: BitFlag;
                        /**
                         * The program is recorded and available to be played.
                         */
                        recorded: BitFlag;
                    }>>;
                    /**
                     * This field shall represent the information of a series such as season and episode number. This field is
                     * optional but SHOULD be provided if the program represents a series and this information is available.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.16
                     */
                    seriesInfo: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                        /**
                         * This field shall represent the season of the series associated to the program.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.9.1
                         */
                        season: import("../tlv/TlvObject.js").FieldType<string>;
                        /**
                         * This field shall represent the episode of the program.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.9.2
                         */
                        episode: import("../tlv/TlvObject.js").FieldType<string>;
                    }> | null>;
                    /**
                     * This field shall represent the category of a particular program. This field is optional but shall be provided
                     * if known.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.17
                     */
                    categoryList: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                        /**
                         * This field shall represent the category or genre of the program. Ex. News.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.8.1
                         */
                        category: import("../tlv/TlvObject.js").FieldType<string>;
                        /**
                         * This field shall represent the sub-category or sub-genre of the program. Ex. Local.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.8.2
                         */
                        subCategory: import("../tlv/TlvObject.js").OptionalFieldType<string>;
                    }>[]>;
                    /**
                     * This field shall represent a list of the cast or the crew on the program. A single cast member may have more
                     * than one role. This field is optional but shall be provided if known.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.18
                     */
                    castList: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                        /**
                         * This field shall represent the name of the cast member.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.10.1
                         */
                        name: import("../tlv/TlvObject.js").FieldType<string>;
                        /**
                         * This field shall represent the role of the cast member. Ex. Actor, Director.
                         *
                         * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.10.2
                         */
                        role: import("../tlv/TlvObject.js").FieldType<string>;
                    }>[]>;
                    /**
                     * This field shall indicate the list of additional external content identifiers.
                     *
                     * @see {@link MatterSpecification.v142.Cluster} § 6.6.5.7.19
                     */
                    externalIdList: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                        name: import("../tlv/TlvObject.js").FieldType<string>;
                        value: import("../tlv/TlvObject.js").FieldType<string>;
                    }>[]>;
                }>[]>;
            }>, any> & {
                readonly optional: true;
                readonly isConditional: true;
                readonly optionalIf: [] | import("../cluster/Cluster.js").ConditionalFeatureList<import("../schema/BitmapSchema.js").BitSchema>;
                readonly mandatoryIf: [] | [{
                    electronicGuide: boolean;
                }];
            };
            readonly recordProgram: Command<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall indicate the program identifier for the program that should be recorded. This value is
                 * provided by the identifier field in ProgramStruct.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.7.1
                 */
                programIdentifier: import("../tlv/TlvObject.js").FieldType<string>;
                /**
                 * This field shall indicate whether the whole series associated to the program should be recorded. For example,
                 * invoking record program on an episode with that flag set to true, the target should schedule record the whole
                 * series.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.7.2
                 */
                shouldRecordSeries: import("../tlv/TlvObject.js").FieldType<boolean>;
                /**
                 * This field, if present, shall indicate the list of additional external content identifiers.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.7.3
                 */
                externalIdList: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                    name: import("../tlv/TlvObject.js").FieldType<string>;
                    value: import("../tlv/TlvObject.js").FieldType<string>;
                }>[]>;
                /**
                 * This field, if present, shall indicate app-specific data.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.7.4
                 */
                data: import("../tlv/TlvObject.js").OptionalFieldType<AllowSharedBufferSource>;
            }>, void, any> & {
                readonly optional: true;
                readonly isConditional: true;
                readonly optionalIf: [] | import("../cluster/Cluster.js").ConditionalFeatureList<import("../schema/BitmapSchema.js").BitSchema>;
                readonly mandatoryIf: [] | [{
                    recordProgram: boolean;
                    electronicGuide: boolean;
                }];
            };
            readonly cancelRecordProgram: Command<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall indicate the program identifier for the program that should be cancelledfromrecording. This
                 * value is provided by the identifier field in ProgramStruct.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.8.1
                 */
                programIdentifier: import("../tlv/TlvObject.js").FieldType<string>;
                /**
                 * This field shall indicate whether the whole series associated to the program should be cancelled from
                 * recording. For example, invoking record program on an episode with that flag set to true, the target should
                 * schedule record the whole series.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.8.2
                 */
                shouldRecordSeries: import("../tlv/TlvObject.js").FieldType<boolean>;
                /**
                 * This field, if present, shall indicate the list of additional external content identifiers.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.8.3
                 */
                externalIdList: import("../tlv/TlvObject.js").OptionalFieldType<import("../tlv/TlvObject.js").TypeFromFields<{
                    name: import("../tlv/TlvObject.js").FieldType<string>;
                    value: import("../tlv/TlvObject.js").FieldType<string>;
                }>[]>;
                /**
                 * This field, if present, shall indicate app-specific data.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.8.4
                 */
                data: import("../tlv/TlvObject.js").OptionalFieldType<AllowSharedBufferSource>;
            }>, void, any> & {
                readonly optional: true;
                readonly isConditional: true;
                readonly optionalIf: [] | import("../cluster/Cluster.js").ConditionalFeatureList<import("../schema/BitmapSchema.js").BitSchema>;
                readonly mandatoryIf: [] | [{
                    recordProgram: boolean;
                    electronicGuide: boolean;
                }];
            };
            /**
             * Change the channel to the channel with the given Number in the ChannelList attribute.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.3
             */
            readonly changeChannelByNumber: Command<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall indicate the channel major number value (ATSC format) to which the channel should change.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.3.1
                 */
                majorNumber: import("../tlv/TlvObject.js").FieldType<number>;
                /**
                 * This field shall indicate the channel minor number value (ATSC format) to which the channel should change.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.3.2
                 */
                minorNumber: import("../tlv/TlvObject.js").FieldType<number>;
            }>, void, any>;
            /**
             * This command provides channel up and channel down functionality, but allows channel index jumps of size
             * Count.
             *
             * Jumps are relative to the available list of channels. For example, when the current channel is 100.0 and
             * the list of available channels is [100.0, 200.0, 201.0, 305.1], a SkipChannel command with jump value of
             * 2 shall change the channel to 201.0.
             *
             * When the value of the increase or decrease is larger than the number of channels remaining in the given
             * direction, then the behavior shall be to return to the beginning (or end) of the channel list and
             * continue. For example, if the current channel is at index 0 and count value of -1 is given, then the
             * current channel should change to the last channel.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.4
             */
            readonly skipChannel: Command<import("../tlv/TlvObject.js").TypeFromFields<{
                /**
                 * This field shall indicate the number of steps to increase (Count is positive) or decrease (Count is negative)
                 * the current channel.
                 *
                 * @see {@link MatterSpecification.v142.Cluster} § 6.6.7.4.1
                 */
                count: import("../tlv/TlvObject.js").FieldType<number>;
            }>, void, any>;
        };
    }, []>;
    /**
     * This cluster supports all Channel features. It may support illegal feature combinations.
     *
     * If you use this cluster you must manually specify which features are active and ensure the set of active features
     * is legal per the Matter specification.
     */
    interface Complete extends Identity<typeof CompleteInstance> {
    }
    const Complete: Complete;
}
export type ChannelCluster = Channel.Cluster;
export declare const ChannelCluster: Channel.Cluster;
//# sourceMappingURL=channel.d.ts.map