/**
 * @license
 * Copyright 2022-2025 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { Branded } from "#general";
import { TlvWrapper } from "../tlv/TlvWrapper.js";
/**
 * A CASE Authenticated Tag (CAT) is a special subject distinguished name within the Operational Certificate.
 *
 * @see {@link MatterSpecification.v142.Core} § 6.6.2.1.2.
 */
export type CaseAuthenticatedTag = Branded<number, "CaseAuthenticatedTag">;
/** Creates a CaseAuthenticatedTag from an identifier and version number. */
export declare function CaseAuthenticatedTag(tag: number, version: number): CaseAuthenticatedTag;
/** Creates a CaseAuthenticatedTag from an id containing identifier and version number. */
export declare function CaseAuthenticatedTag(id: number): CaseAuthenticatedTag;
export declare namespace CaseAuthenticatedTag {
    /**
     * Creates an Administrator Identifier CaseAuthenticatedTag with the given version.
     * If a version is not provided, version 1 is used.
     * @see {@link MatterSpecification.v142.Core} § 6.6.2.1.2.
     */
    const AdministratorIdentifier: (version?: number) => CaseAuthenticatedTag;
    /**
     * Creates an Anchor Identifier CaseAuthenticatedTag with the given version.
     * If a version is not provided, version 1 is used.
     * @see {@link MatterSpecification.v142.Core} § 6.6.2.1.2.
     */
    const AnchorIdentifier: (version?: number) => CaseAuthenticatedTag;
    /** Gets the identifier value (upper 16 bits) of the CaseAuthenticatedTag. */
    const getIdentifyValue: (tag: CaseAuthenticatedTag) => number;
    /** Gets the version number (lower 16 bits) of the CaseAuthenticatedTag. */
    const getVersion: (tag: CaseAuthenticatedTag) => number;
    /** Increases the version number (lower 16 bits) of the CaseAuthenticatedTag by 1. */
    const increaseVersion: (tag: CaseAuthenticatedTag) => CaseAuthenticatedTag;
    /** Validates a list of CaseAuthenticatedTags according to Matter specification rules. */
    const validateNocTagList: (tags: CaseAuthenticatedTag[]) => void;
}
/** Tlv schema for an CASE Authenticated Tag. */
declare class TlvCaseAuthenticatedTagSchema extends TlvWrapper<CaseAuthenticatedTag, number> {
    constructor();
    validate(value: CaseAuthenticatedTag): void;
}
export declare const TlvCaseAuthenticatedTag: TlvCaseAuthenticatedTagSchema;
export {};
//# sourceMappingURL=CaseAuthenticatedTag.d.ts.map