declare class CommandEvent extends CustomEvent<{ source: HTMLElement; command: string; }> { static readonly type = "odx-command"; constructor(detail: CommandEvent['detail'] & { bubbles?: boolean; }); } interface CommandDirectiveOptions { name: T; command: string | ((source: HTMLElement) => string | null); } interface CommandDirective { attribute: T; selector: `[${T}]`; applied(element?: HTMLElement | null): element is E; connect: () => void; disconnect: () => void; subscribe: (target: HTMLElement, handler: (event: CommandEvent) => void) => () => void; invoke: (source: HTMLElement, command: string, targetId?: string | null) => boolean; value: (element: HTMLElement) => string | null; } declare function commandDirective(options: CommandDirectiveOptions): CommandDirective; export { CommandDirective, CommandDirectiveOptions, CommandEvent, commandDirective };