import { AfterViewInit, OnDestroy, QueryList } from '@angular/core';
import { FormBuilder, FormGroup } from '@angular/forms';
import { ActivatedRoute } from '@angular/router';
import * as Ro from '@nakedobjects/restful-objects';
import { ConfigService, ContextService, ErrorService, PaneRouteData, UrlManagerService } from '@nakedobjects/services';
import { ActionViewModel, CollectionViewModel, DialogViewModel, MultiLineDialogViewModel, ParameterViewModel, ViewModelFactoryService } from '@nakedobjects/view-models';
import { Dictionary } from 'lodash';
import { SubscriptionLike as ISubscription } from 'rxjs';
import { PaneComponent } from '../pane/pane';
import { ParametersComponent } from '../parameters/parameters.component';
import * as i0 from "@angular/core";
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);
    parmComponents?: QueryList<ParametersComponent>;
    private sub?;
    dialog: MultiLineDialogViewModel;
    rowData: {
        form: FormGroup;
        dialog: DialogViewModel;
        parms: Dictionary<ParameterViewModel>;
        sub: ISubscription;
    }[];
    form: (i: number) => FormGroup<any>;
    get objectFriendlyName(): string;
    get objectTitle(): string;
    get dialogTitle(): string;
    get header(): string[];
    get rows(): DialogViewModel[];
    parameters: (row: DialogViewModel) => ParameterViewModel[];
    rowSubmitted: (row: DialogViewModel) => boolean;
    rowTooltip: (row: DialogViewModel) => string;
    rowMessage: (row: DialogViewModel) => string;
    rowDisabled: (row: DialogViewModel) => boolean;
    get count(): string;
    invokeAndAdd(index: number): void;
    close: () => void;
    private createForm;
    setMultiLineDialog(holder: Ro.MenuRepresentation | Ro.DomainObjectRepresentation | CollectionViewModel, newDialogId: string, routeData: PaneRouteData, actionViewModel?: ActionViewModel): void;
    protected setup(routeData: PaneRouteData): void;
    focus(parms: QueryList<ParametersComponent>): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<MultiLineDialogComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<MultiLineDialogComponent, "nof-multi-line-dialog", never, {}, {}, never, never, false, never>;
}
