/* eslint-disable @typescript-eslint/no-explicit-any */ export interface MarkdownEditorConstructorOptions { name?: string; value?: string; placeholder?: string; } declare type Modify = Omit & R; export declare type ChangeEvent = Modify< UIEvent, { detail: string; } >; export interface MarkdownEditorEventMap { change: ChangeEvent; } export default class MarkdownEditor extends HTMLElement { name: string; value: string; placeholder: string; /** * * @param name - Input name. * @param value - Input value. * @param placeholder - Input placeholder. */ constructor({ name, value, placeholder }?: MarkdownEditorConstructorOptions); addEventListener( type: K, listener: (this: MarkdownEditor, ev: MarkdownEditorEventMap[K]) => any, options?: boolean | AddEventListenerOptions, ): void; addEventListener( type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions, ): void; removeEventListener( type: K, listener: (this: MarkdownEditor, ev: MarkdownEditorEventMap[K]) => any, options?: boolean | EventListenerOptions, ): void; removeEventListener( type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions, ): void; } declare global { interface HTMLElementTagNameMap { "markdown-editor": MarkdownEditor; } }