import { CustomElementDefinition, CustomEvents } from "../ui-types.js";
declare type defineComponentOpts<P extends object = {}, E extends CustomEvents = {}> = {
    func: CustomElementDefinition<P, E>;
    hauntedOptions?: {
        baseElement?: any;
        observedAttributes?: (keyof P)[];
        useShadowDOM?: boolean;
        shadowRootInit?: ShadowRootInit;
    };
};
export declare function defineComponent<P extends object = {}, E extends CustomEvents = {}>(tagName: string, opts: defineComponentOpts<P, E>): CustomElementDefinition<P, E>;
export {};
