import { type DirtyMarkable } from "../"; import type { Buffer } from "../buffer"; import type { Pool, UTF8Entry } from "../pool"; import { AttributeType } from "../spec"; import { type Annotation, type AnnotationDefaultAttribute, type AnnotationElementValue, type AnnotationsAttribute, type ArrayElementValue, type ClassElementValue, type ConstElementValue, type ElementValue, type ElementValuePair, type EnumElementValue, type ParameterAnnotationsAttribute } from "./annotation"; import { type BootstrapMethod, type BootstrapMethodArgument, type BootstrapMethodsAttribute } from "./bsm"; import { type CodeAttribute, type ExceptionTableEntry } from "./code"; import { type ConstantValueAttribute } from "./constant_value"; import { type EnclosingMethodAttribute } from "./enclosing_method"; import { type ExceptionEntry, type ExceptionsAttribute } from "./exceptions"; import { type InnerClass, type InnerClassesAttribute } from "./inner_classes"; import { type LineNumberTableAttribute, type LineNumberTableEntry } from "./lnt"; import { type LocalVariable, type LocalVariableTableAttribute } from "./lvt"; import { type MethodParameter, type MethodParametersAttribute } from "./method_params"; import { type ModuleAttribute, type ModuleExportsOpens, type ModuleMainClassAttribute, type ModulePackage, type ModulePackagesAttribute, type ModuleProvides, type ModuleRelation, type ModuleRequires } from "./module"; import { type NestHostAttribute, type NestMember, type NestMembersAttribute } from "./nest"; import { type PermittedSubclass, type PermittedSubclassesAttribute } from "./permitted_subclasses"; import { type RecordAttribute, type RecordComponent } from "./record"; import { type SignatureAttribute } from "./signature"; import { type SourceDebugExtensionAttribute } from "./source_debug_ext"; import { type SourceFileAttribute } from "./source_file"; export interface Attribute extends DirtyMarkable { type?: AttributeType; nameIndex: number; data: Uint8Array; name?: UTF8Entry; } export interface Attributable { attrs: Attribute[]; } export declare const readAttrs: (buffer: Buffer, pool: Pool, flags?: number) => Attribute[]; export declare const writeAttrs: (buffer: Buffer, attrs: Attribute[]) => void; export { Annotation, AnnotationDefaultAttribute, AnnotationElementValue, AnnotationsAttribute, ArrayElementValue, BootstrapMethod, BootstrapMethodArgument, BootstrapMethodsAttribute, ClassElementValue, CodeAttribute, ConstantValueAttribute, ConstElementValue, ElementValue, ElementValuePair, EnclosingMethodAttribute, EnumElementValue, ExceptionEntry, ExceptionsAttribute, ExceptionTableEntry, InnerClass, InnerClassesAttribute, LineNumberTableAttribute, LineNumberTableEntry, LocalVariable, LocalVariableTableAttribute, MethodParameter, MethodParametersAttribute, ModuleAttribute, ModuleExportsOpens, ModuleMainClassAttribute, ModulePackage, ModulePackagesAttribute, ModuleProvides, ModuleRelation, ModuleRequires, NestHostAttribute, NestMember, NestMembersAttribute, ParameterAnnotationsAttribute, PermittedSubclass, PermittedSubclassesAttribute, RecordAttribute, RecordComponent, SignatureAttribute, SourceDebugExtensionAttribute, SourceFileAttribute, };