import { RenderMode, type AnyProps, type AttributeDictionary, type HTMLElementTagName } from "@knyt/weaver"; import type { KnytElement } from "../KnytElement.ts"; import type { ElementDefinition, HTMLElementConstructor } from "../types.ts"; /** * @internal scope: workspace */ export type DefineElementDefinitionOptions = { /** * Determines the default render mode of the element's declaration. * * @see {@link https://knyt.dev/s/render-modes} */ defaultRenderMode?: `${RenderMode}`; /** * The custom element registry to use for defining the custom element. * * @remarks * * This is useful for defining elements within a specific window. */ customElements?: Window["customElements"]; }; /** * Defines a new KnytElement with the given name and constructor. * * @param tagName The name of the custom element. * @param ElementConstructor The constructor of the custom element. * @returns A set of builders for rendering the custom element. * * @internal scope: package */ export declare function defineElementDefinition, A extends AnyProps = KnytElement.ToAttributes>(tagName: U, ElementConstructor: T, options?: DefineElementDefinitionOptions): ElementDefinition; /** * Defines a new arbitrary custom element with the given name and constructor. * * @param tagName The name of the custom element. * @param ElementConstructor The constructor of the custom element. * @returns A set of builders for rendering the custom element. * * @internal scope: package */ export declare function defineElementDefinition, A extends AnyProps = AttributeDictionary>(tagName: U, ElementConstructor: T, options?: DefineElementDefinitionOptions): ElementDefinition.Arbitrary; //# sourceMappingURL=defineElementDefinition.d.ts.map