/// <reference types="lodash" />
import * as Models from './models';
import { PaneRouteData, Pane } from './route-data';
import { ContextService } from './context.service';
import { UrlManagerService } from './url-manager.service';
import { ColorService } from './color.service';
import { ClickHandlerService } from './click-handler.service';
import { ErrorService } from './error.service';
import { MaskService } from './mask.service';
import { AttachmentViewModel } from './view-models/attachment-view-model';
import { ErrorViewModel } from './view-models/error-view-model';
import { IMessageViewModel } from './view-models/imessage-view-model';
import { LinkViewModel } from './view-models/link-view-model';
import { ItemViewModel } from './view-models/item-view-model';
import { RecentItemViewModel } from './view-models/recent-item-view-model';
import { TableRowColumnViewModel } from './view-models/table-row-column-view-model';
import { TableRowViewModel } from './view-models/table-row-view-model';
import { RecentItemsViewModel } from './view-models/recent-items-view-model';
import { ParameterViewModel } from './view-models/parameter-view-model';
import { ActionViewModel } from './view-models/action-view-model';
import { PropertyViewModel } from './view-models/property-view-model';
import { CollectionViewModel } from './view-models/collection-view-model';
import { MenuViewModel } from './view-models/menu-view-model';
import { MenusViewModel } from './view-models/menus-view-model';
import { Dictionary } from 'lodash';
import { ListViewModel } from './view-models/list-view-model';
import { DialogViewModel } from './view-models/dialog-view-model';
import { DomainObjectViewModel } from './view-models/domain-object-view-model';
import { MultiLineDialogViewModel } from './view-models/multi-line-dialog-view-model';
import { ConfigService } from './config.service';
import { LoggerService } from './logger.service';
import { ApplicationPropertiesViewModel } from './view-models/application-properties-view-model';
import { CiceroCommandFactoryService } from './cicero-command-factory.service';
import { CiceroRendererService } from './cicero-renderer.service';
export declare class ViewModelFactoryService {
    private readonly context;
    private readonly urlManager;
    private readonly color;
    private readonly error;
    private readonly clickHandler;
    private readonly mask;
    private readonly configService;
    private readonly loggerService;
    private readonly commandFactory;
    protected ciceroRenderer: CiceroRendererService;
    constructor(context: ContextService, urlManager: UrlManagerService, color: ColorService, error: ErrorService, clickHandler: ClickHandlerService, mask: MaskService, configService: ConfigService, loggerService: LoggerService, commandFactory: CiceroCommandFactoryService, ciceroRenderer: CiceroRendererService);
    errorViewModel: (error: Models.ErrorWrapper | null) => ErrorViewModel;
    attachmentViewModel: (propertyRep: Models.PropertyMember, paneId: Pane) => AttachmentViewModel | null;
    linkViewModel: (linkRep: Models.Link, paneId: Pane) => LinkViewModel;
    itemViewModel: (linkRep: Models.Link, paneId: Pane, selected: boolean, index: number, id: string) => ItemViewModel;
    recentItemViewModel: (obj: Models.DomainObjectRepresentation, linkRep: Models.Link, paneId: Pane, selected: boolean, index: number) => RecentItemViewModel;
    actionViewModel: (actionRep: Models.ActionRepresentation | Models.ActionMember, vm: IMessageViewModel, routeData: PaneRouteData) => ActionViewModel;
    propertyTableViewModel: (id: string, propertyRep?: Models.PropertyMember | Models.CollectionMember | undefined) => TableRowColumnViewModel;
    propertyViewModel: (propertyRep: Models.PropertyMember, id: string, previousValue: Models.Value, paneId: Pane, parentValues: () => Dictionary<Models.Value>) => PropertyViewModel;
    dialogViewModel: (routeData: PaneRouteData, action: Models.ActionRepresentation | Models.InvokableActionMember, actionViewModel: ActionViewModel | null, isRow: boolean, row?: number | undefined) => DialogViewModel;
    multiLineDialogViewModel: (routeData: PaneRouteData, action: Models.ActionRepresentation | Models.InvokableActionMember, holder: Models.DomainObjectRepresentation | Models.MenuRepresentation | CollectionViewModel) => MultiLineDialogViewModel;
    domainObjectViewModel: (obj: Models.DomainObjectRepresentation, routeData: PaneRouteData, forceReload: boolean) => DomainObjectViewModel;
    listViewModel: (list: Models.ListRepresentation, routeData: PaneRouteData) => ListViewModel;
    parameterViewModel: (parmRep: Models.Parameter, previousValue: Models.Value, paneId: Pane) => ParameterViewModel;
    collectionViewModel: (collectionRep: Models.CollectionMember, routeData: PaneRouteData, forceReload: boolean) => CollectionViewModel;
    menuViewModel: (menuRep: Models.MenuRepresentation, routeData: PaneRouteData) => MenuViewModel;
    menusViewModel: (menusRep: Models.MenusRepresentation, routeData: PaneRouteData) => MenusViewModel;
    recentItemsViewModel: (paneId: Pane) => RecentItemsViewModel;
    tableRowViewModel: (properties: Dictionary<Models.PropertyMember | Models.CollectionMember>, paneId: Pane, title: string) => TableRowViewModel;
    applicationPropertiesViewModel: () => ApplicationPropertiesViewModel;
    getItems: (links: Models.Link[], tableView: boolean, routeData: PaneRouteData, listViewModel: CollectionViewModel | ListViewModel) => ItemViewModel[];
}
