export declare const COMMAND_META: unique symbol; export interface CommandMetadata { } export declare abstract class Command { abstract [COMMAND_META]: CommandMetadata; private constructor(); static [Symbol.hasInstance](input: object): boolean; } export declare const COMMAND_EVENT_META: unique symbol; export interface CommandEventMetadata<C extends Command = Command> { source: C; } export declare abstract class CommandEvent<C extends Command = Command> { abstract [COMMAND_EVENT_META]: CommandEventMetadata<C>; private constructor(); static [Symbol.hasInstance](input: object): boolean; }