import type { ComponentConfig } from "../utils/index"; export declare const AttrBindings: unique symbol; export declare const ClassBindings: unique symbol; export declare const StyleBindings: unique symbol; interface DSElementExtension { __initialized: boolean; __observer: MutationObserver; __queuedUpdate: number; __managedClasses: Set; __cbAttributeChanged?: (key: string, oldValue: any, newValue: any) => any; __cbConnected?: () => any; __cbDisconnected?: () => any; __updateHostBindings: () => any; __updateChildQueries: (adhereToRefreshOption?: boolean) => any; __gatherChildren: () => any; __startMutObs: () => any; __stopMutObs: () => any; __doRender: () => any; update: () => any; attributeChangedCallback: (key: string, oldValue: any, newValue: any) => any; connectedCallback: () => any; disconnectedCallback: () => any; contentChangedCallback?: () => any; render?: () => any; } export type DSComponent = HTMLElement & DSElementExtension; /** * Marks a class as a component, setting the tag it will be registered under * when the class is passed to `register()`. */ export declare function Component(config: ComponentConfig): ClassDecorator; export {};