/// <reference types="lodash" />
import { QueryList, AfterViewInit, OnDestroy } from '@angular/core';
import { PaneComponent } from '../pane/pane';
import { ParametersComponent } from '../parameters/parameters.component';
import { ViewModelFactoryService } from '../view-model-factory.service';
import { ActivatedRoute } from '@angular/router';
import { UrlManagerService } from '../url-manager.service';
import { ContextService } from '../context.service';
import { ErrorService } from '../error.service';
import { PaneRouteData } from '../route-data';
import { ActionViewModel } from '../view-models/action-view-model';
import { CollectionViewModel } from '../view-models/collection-view-model';
import { MultiLineDialogViewModel } from '../view-models/multi-line-dialog-view-model';
import { DialogViewModel } from '../view-models/dialog-view-model';
import { FormBuilder, FormGroup } from '@angular/forms';
import { ParameterViewModel } from '../view-models/parameter-view-model';
import { ConfigService } from '../config.service';
import * as Models from '../models';
import { Dictionary } from 'lodash';
import { ISubscription } from 'rxjs/Subscription';
export declare class MultiLineDialogComponent extends PaneComponent implements AfterViewInit, OnDestroy {
    private readonly viewModelFactory;
    private readonly error;
    private readonly formBuilder;
    private readonly configService;
    constructor(activatedRoute: ActivatedRoute, urlManager: UrlManagerService, viewModelFactory: ViewModelFactoryService, context: ContextService, error: ErrorService, formBuilder: FormBuilder, configService: ConfigService);
    dialog: MultiLineDialogViewModel;
    rowData: {
        form: FormGroup;
        dialog: DialogViewModel;
        parms: Dictionary<ParameterViewModel>;
        sub: ISubscription;
    }[];
    form: (i: number) => FormGroup;
    readonly objectFriendlyName: string;
    readonly objectTitle: string;
    readonly dialogTitle: string;
    readonly header: string[];
    readonly rows: DialogViewModel[];
    parameters: (row: DialogViewModel) => ParameterViewModel[];
    rowSubmitted: (row: DialogViewModel) => boolean;
    rowTooltip: (row: DialogViewModel) => string;
    rowMessage: (row: DialogViewModel) => string;
    rowDisabled: (row: DialogViewModel) => boolean;
    readonly count: string;
    invokeAndAdd(index: number): void;
    close: () => void;
    private createForm(dialog);
    setMultiLineDialog(holder: Models.MenuRepresentation | Models.DomainObjectRepresentation | CollectionViewModel, newDialogId: string, routeData: PaneRouteData, actionViewModel?: ActionViewModel): void;
    protected setup(routeData: PaneRouteData): void;
    parmComponents: QueryList<ParametersComponent>;
    focus(parms: QueryList<ParametersComponent>): void;
    private sub;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
}
