import { CommandBase } from "../command-base";
import { IServeCommand, IServeCommandOptions } from "./i-serve-command";
import { ICommandOption } from "../i-command-option";
import { IBuildConfig } from "../../build-config/i-build-config";
import { ServeTaskWrapper } from "../../task/serve-task/i-serve-task";
/**
 * A command that serves a Fovea app
 */
export declare class ServeCommand extends CommandBase implements IServeCommand {
    private readonly config;
    private readonly serveTaskWrapper;
    /**
     * The command name
     * @type {string}
     */
    readonly shortName: string;
    /**
     * The rest of the command, following the short name
     * @type {string?}
     */
    readonly command: string | undefined;
    /**
     * The description of the command
     * @type {string}
     */
    readonly description: string;
    /**
     * The options that can be provided to the command
     * @type {ICommandOption[]}
     */
    readonly options: ICommandOption[];
    constructor(config: IBuildConfig, serveTaskWrapper: ServeTaskWrapper);
    /**
     * Invoked when a command is received with options
     * @param {string[]} _args
     * @param {IServeCommandOptions} options
     * @returns {Promise<void>}
     */
    onCommand(_args: string[], options: IServeCommandOptions): Promise<void>;
}
