import { Component } from "@angular/core";
import { TaskMagicService } from "./task.magics.service";
import { List } from "@magic-xpa/mscorelib";
import { ComponentListMagicService } from "./component-list.magic.service";
import { ActivatedRoute, Router } from "@angular/router";
import { CommandsCollectorMagicService } from "./commands-collector.magic.service";
import { RouteDefinition } from "../interfaces/sub-form-definition.iterface";
import { RouteCommand, RouterCommandsMagicService } from "../services/router-commands.magic.service";
import { ISubformMagicService } from "./ISubformMagicService";
import { RouterContainerMagicComponent } from "../ui/router-container.magic.component";
/**
 * Service for managing subforms and routing
 */
export declare class SubformMagicService implements ISubformMagicService {
    private task;
    protected activatedRoute: ActivatedRoute;
    protected componentList: ComponentListMagicService;
    protected pendingCommandsCollector: CommandsCollectorMagicService;
    protected router: Router;
    protected routerCommandsMagicService: RouterCommandsMagicService;
    subformsDict: {};
    routesDict: {
        [x: string]: RouteDefinition;
    };
    currentRouteDefinition: RouteDefinition;
    static currentCallerMgSubformServiceRef: any;
    static routerContainers: Array<RouterContainerMagicComponent>;
    constructor(task: TaskMagicService, activatedRoute: ActivatedRoute, componentList: ComponentListMagicService, pendingCommandsCollector: CommandsCollectorMagicService, router: Router, routerCommandsMagicService: RouterCommandsMagicService);
    /**
     * Finds and returns the component according to the subform name
     * @param subformName
     * @returns
     */
    mgGetComp(subformName: string): Component;
    /**
     * Returns the parameters of the subform
     * @param subformName
     * @returns
     */
    mgGetParameters(subformName: string): any;
    /**
     * @ignore
     */
    deleteSubformComp(subformControlName: string, formName: string): void;
    /**
     * @ignore
     */
    addSubformComp(subformControlName: string, formName: string, taskId: string, taskDescription: any, routerPath: string, params: List<any>, inDefaultOutlet: boolean): void;
    /**
     * Open the subform using a route command
     */
    ExecuteRouteCommand(routeCommand: RouteCommand): void;
    /**
     * @ignore
     */
    init(): void;
    /**
     * @ignore
     */
    refreshView(): void;
    static getRelativeRoute(sendActivatedRoute: ActivatedRoute): ActivatedRoute;
}
