/*!
 * @license
 * Copyright Squiz Australia Pty Ltd. All Rights Reserved.
 */
import { Observable } from 'rxjs';
import { CommandContext } from '../Context/Context.dto';
/**
 * TODO:
 * @export
 * @abstract
 * @class BaseCommand
 */
export declare abstract class BaseCommand {
    /**
     * TODO:
     * @type {boolean}
     * @memberof BaseCommand
     */
    readonly isAlias: boolean;
    /**
     * TODO:
     * @param {CommandContext} context TODO:
     * @returns {Array<string>} TODO:
     * @memberof BaseCommand
     */
    aliases(context: CommandContext): Array<string>;
    /**
     * TODO:
     * @param {CommandContext} context TODO:
     * @returns {Array<string>} TODO:
     * @memberof BaseCommand
     */
    examples(context: CommandContext): Array<string>;
    /**
     * TODO:
     * @param {CommandContext} context TODO:
     * @returns {(Observable<string> | Promise<string> | string)} TODO:
     * @memberof BaseCommand
     */
    help(context: CommandContext): Observable<string> | Promise<string> | string;
    /**
     * TODO:
     * @param {CommandContext} context TODO:
     * @returns {Array<string>} TODO:
     * @memberof BaseCommand
     */
    usages(context: CommandContext): Array<string>;
}
