import { Type } from '@tsdi/ioc';
import { LoadType } from '@tsdi/core';
import { BootApplication, StartupService } from '@tsdi/boot';
import { MvcContext, MvcOptions } from './MvcContext';
/**
 * Default Application of type mvc.
 *
 * @export
 * @class Application
 * @implements {IApplication}
 */
export declare class MvcApplication extends BootApplication<MvcContext> {
    getBootDeps(): Object[];
    /**
     * run mvc application.
     *
     * @static
     * @template T
     * @param {(T | Type | MvcOptions)} [target]
     * @param {(LoadType[] | LoadType | string)} [deps]
     * @param {...string[]} args
     * @returns {Promise<T>}
     * @memberof MvcApplication
     */
    static run<T extends MvcContext>(target?: T | Type | MvcOptions, deps?: LoadType[] | LoadType | string, ...args: string[]): Promise<T>;
    onContextInit(ctx: MvcContext): void;
    static ρAnn(): any;
}
/**
 * configure register.
 *
 * @export
 * @class MvcConfigureRegister
 * @extends {ConfigureRegister}
 */
export declare class MvcStartupService extends StartupService<MvcContext> {
    private logger;
    private ctx;
    private subs;
    configureService(ctx: MvcContext): Promise<void>;
    protected destroying(): void;
    static ρAnn(): any;
}
