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;
}