export declare const ON_BEFORE_CONNECTED_METADATA_KEY: unique symbol;
export declare const ON_AFTER_CONNECTED_METADATA_KEY: unique symbol;
export declare const ON_BEFORE_DISCONNECTED_METADATA_KEY: unique symbol;
export declare const ON_AFTER_DISCONNECTED_METADATA_KEY: unique symbol;
export declare const ON_BEFORE_ADOPTED_METADATA_KEY: unique symbol;
export declare const ON_AFTER_ADOPTED_METADATA_KEY: unique symbol;
export declare const ON_ADD_EVENT_LISTENER_METADATA_KEY: unique symbol;
export declare const ON_ATTRIBUTE_CHANGED_METADATA_KEY: unique symbol;
export declare const ON_MUTATION_SUBSCRIBE_METADATA_KEY: unique symbol;
export declare const ATTRIBUTE_CHANGED_WILDCARD = "*";
export declare const onBeforeConnected: MethodDecorator;
export declare const onAfterConnected: MethodDecorator;
export declare const onConnected: MethodDecorator;
export declare const onBeforeDisconnected: MethodDecorator;
export declare const onAfterDisconnected: MethodDecorator;
export declare const onDisconnected: MethodDecorator;
export declare const onBeforeAdopted: MethodDecorator;
export declare const onAfterAdopted: MethodDecorator;
export declare const onAdopted: MethodDecorator;
export declare const onAddEventListener: MethodDecorator;
export declare function onAttributeChanged(attributeName: string | string[]): MethodDecorator;
export declare function onAttributeChanged(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;
export declare const getLifecycleMetadata: <T = (string | symbol)[]>(target: any, metadataKey: symbol) => T | undefined;
export interface MutationSubscribeOptions {
    root?: 'light' | 'shadow' | 'all' | 'auto';
}
export interface MutationSubscribeMetadata {
    propertyKey: string | symbol;
    options: MutationSubscribeOptions;
}
/**
 * Called when MutationObserver detects DOM changes inside the component.
 *
 * @example
 * // Parameterless — observes auto (shadow if exists, otherwise light)
 * @onMutationObserved
 * onMutation(mutationList: MutationRecord[], observer: MutationObserver) { ... }
 *
 * // With options
 * @onMutationObserved({ root: 'shadow' })
 * onShadowMutation(mutationList: MutationRecord[], observer: MutationObserver) { ... }
 *
 * @onMutationObserved({ root: 'all' })
 * onAllMutation(mutationList: MutationRecord[], observer: MutationObserver) { ... }
 */
export declare function onMutationSubscribe(options: MutationSubscribeOptions): MethodDecorator;
export declare function onMutationSubscribe(target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor): void;
export declare const getMutationSubscribeMetadataList: (target: any) => MutationSubscribeMetadata[] | undefined;
//# sourceMappingURL=lifecycles.d.ts.map