import { type ComponentConstructor, type ComponentInstance } from "./Component.js"; /** * Define a component class. * @param name The name of the custom element. * @param ctr The component class to define. * @param options The custom element options. * @returns The decorated component class. * @throws If the name has already been registered. * @throws An error if the component is already defined. */ export declare function define< T extends ComponentInstance, C extends ComponentConstructor >(name: string, ctr: C, options?: ElementDefinitionOptions, finalizeConstructor?: boolean): C; /** * Decorate and define a component class. * @param name The name of the custom element. * @param options The custom element options. * @returns The decorated component class. */ export declare const customElement: (name: string, options?: ElementDefinitionOptions) => (classOrDescriptor: T, context?: ClassDecoratorContext) => any;