import { Comment, DeclarationReflection, ParameterReflection, SignatureReflection } from 'typedoc';
import { CommandMethodDeclarationReflection, CommentSource, Example } from '../../converter';
import { CommandData, ExecMethodData } from '../command-data';
import { Route } from '../types';
import { ExtensionReflection } from './extension';
/**
 * Execute Methods all have the same route.
 */
export declare const NAME_EXECUTE_ROUTE = "/session/:sessionId/execute";
/**
 * Execute methods all have the same HTTP method.
 */
export declare const HTTP_METHOD_EXECUTE = "POST";
/**
 * A reflection containing data about a single command or execute method.
 *
 * Methods may be invoked directly by Handlebars templates.
 */
export declare class CommandReflection extends DeclarationReflection {
    readonly data: CommandData | ExecMethodData;
    /**
     * Comment, if any.
     */
    readonly comment?: Comment;
    /**
     * Metadata about where `comment` came from
     */
    readonly commentSource?: CommentSource;
    readonly examples?: Example[];
    /**
     * HTTP Method of the command or execute method
     */
    readonly httpMethod: string;
    /**
     * Optional parameters, if any
     */
    readonly optionalParams: string[];
    /**
     * Parameters for template display
     */
    readonly parameters?: ParameterReflection[];
    /**
     * Original method declaration
     */
    readonly refl?: CommandMethodDeclarationReflection;
    /**
     * Required parameters, if any
     */
    readonly requiredParams: string[];
    /**
     * Route name
     */
    readonly route: Route;
    /**
     * Script name, if any. Only used if kind is `EXECUTE_METHOD`
     */
    readonly script?: string;
    /**
     * Call signature for template display
     */
    readonly signature?: SignatureReflection;
    /**
     * Sets props depending on type of `data`
     * @param data Command or execute method data
     * @param parent Always a {@linkcode ExtensionReflection}
     * @param route Route, if not an execute method
     */
    constructor(data: CommandData | ExecMethodData, parent: ExtensionReflection, route?: Route);
    /**
     * If `true`, this command contains one or more examples
     *
     * Used by templates
     */
    get hasExample(): boolean;
    /**
     * If `true`, this command has optional parameters
     *
     * Used by templates
     */
    get hasOptionalParams(): boolean;
    /**
     * If `true`, this command has required parameters
     *
     * Used by templates
     */
    get hasRequiredParams(): boolean;
    /**
     * If `true`, this command contains data about an execute method
     *
     * Used by templates
     */
    get isExecuteMethod(): boolean;
}
//# sourceMappingURL=command.d.ts.map