/**
 * @license
 * Copyright 2022-2025 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { TlvTag, TlvToPrimitive, TlvType, TlvTypeLength } from "./TlvCodec.js";
import { TlvReader, TlvSchema, TlvWriter } from "./TlvSchema.js";
type LengthConstraints = {
    minLength?: number;
    maxLength?: number;
    length?: number;
};
/**
 * Schema to encode an byte string or an Utf8 string in TLV.
 *
 * @see {@link MatterSpecification.v10.Core} § A.11.2
 */
export declare class StringSchema<T extends TlvType.ByteString | TlvType.Utf8String> extends TlvSchema<TlvToPrimitive[T]> {
    private type;
    readonly minLength: number;
    readonly maxLength: number;
    constructor(type: T, minLength?: number, maxLength?: number);
    encodeTlvInternal(writer: TlvWriter, value: TlvToPrimitive[T], tag?: TlvTag): void;
    decodeTlvInternalValue(reader: TlvReader, typeLength: TlvTypeLength): TlvToPrimitive[T];
    validate(value: TlvToPrimitive[T]): void;
    bound({ minLength, maxLength, length }: LengthConstraints): StringSchema<T>;
}
/** ByteString TLV schema. */
export declare const TlvByteString: StringSchema<TlvType.ByteString>;
/** String TLV schema. */
export declare const TlvString: StringSchema<TlvType.Utf8String>;
/** String TLV schema. */
export declare const TlvString32max: StringSchema<TlvType.Utf8String>;
/** String TLV schema. */
export declare const TlvString64max: StringSchema<TlvType.Utf8String>;
/** String TLV schema. */
export declare const TlvString256max: StringSchema<TlvType.Utf8String>;
export declare const TlvHardwareAddress: StringSchema<TlvType.ByteString>;
export {};
//# sourceMappingURL=TlvString.d.ts.map