import { Element } from "./element"; export declare class Attribute { readonly name: string; private readonly parser; private current; onChange: ((newValue: V | null, prevValue: V | null) => void) | null; onSet: (() => void) | null; constructor(name: string, parser: (v: string | null) => V); get(): V | null; setInternal(v: V | null): void; set(v: V | null): void; isEqualTo(v: V | null): boolean; isEqualToRaw(v: string | null): boolean; syncDown(element: Element): void; syncUp(element: Element): void; } export declare class AttributeController { private readonly element; private readonly attributes; constructor(element: Element); registerAttribute(attribute: Attribute): void; getAttribute(name: string): Attribute | undefined; detectedPossibleChange(mutation: MutationRecord): void; syncUpAll(): void; }