/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { TlvTag, TlvTypeLength } from "./TlvCodec.js";
import { TlvEncodingOptions, TlvReader, TlvSchema, TlvWriter } from "./TlvSchema.js";
export declare class TlvWrapper<O, T> extends TlvSchema<O> {
    protected readonly underlyingSchema: TlvSchema<T>;
    protected readonly wrap: (object: O) => T;
    private readonly unwrap;
    constructor(underlyingSchema: TlvSchema<T>, wrap: (object: O) => T, unwrap: (value: T) => O);
    /** @deprecated Part of old ClusterType() compat layer. */
    get element(): TlvSchema.Element | undefined;
    decodeTlvInternalValue(reader: TlvReader, typeLength: TlvTypeLength): O;
    encodeTlvInternal(writer: TlvWriter, value: O, tag?: TlvTag, options?: TlvEncodingOptions): void;
    validate(value: O): void;
}
//# sourceMappingURL=TlvWrapper.d.ts.map