import type { ESLMixinElement } from './esl-mixin-element';
/**
 * Internal {@link ESLMixinElement}s observedAttributes mutation listener.
 * Creates a single instance per mixin type
 * Ignores mixin primary attribute changes (they are observed by {@link ESLMixinRegistry} ootb)
 */
export declare class ESLMixinAttributesObserver {
    protected readonly type: string;
    protected observer: MutationObserver;
    private constructor();
    /** Processes single mutation record */
    protected handleRecord(record: MutationRecord): void;
    /** Subscribes to the {@link ESLMixinElement} host instance mutations */
    observe(mixin: ESLMixinElement): void;
    /** Unsubscribes from the {@link ESLMixinElement} host instance mutations */
    unobserve(mixin: ESLMixinElement): void;
    private static instanceFor;
    /** Subscribes to the {@link ESLMixinElement} host instance mutations */
    static observe(mixin: ESLMixinElement): void;
    /** Unsubscribes from the {@link ESLMixinElement} host instance mutations */
    static unobserve(mixin: ESLMixinElement): void;
}
