import { MessageViewModel } from './message-view-model';
import { ColorService } from '../color.service';
import { ContextService } from '../context.service';
import { ViewModelFactoryService } from '../view-model-factory.service';
import { UrlManagerService } from '../url-manager.service';
import { ErrorService } from '../error.service';
import { PaneRouteData, Pane } from '../route-data';
import { ChoiceViewModel } from './choice-view-model';
import { ActionViewModel } from './action-view-model';
import { MenuItemViewModel } from './menu-item-view-model';
import { PropertyViewModel } from './property-view-model';
import { CollectionViewModel } from './collection-view-model';
import * as Models from '../models';
import { ConfigService } from '../config.service';
import { IMenuHolderViewModel } from './imenu-holder-view-model';
export declare class DomainObjectViewModel extends MessageViewModel implements IMenuHolderViewModel {
    private readonly colorService;
    private readonly contextService;
    private readonly viewModelFactory;
    private readonly urlManager;
    private readonly error;
    private readonly configService;
    routeData: PaneRouteData;
    constructor(colorService: ColorService, contextService: ContextService, viewModelFactory: ViewModelFactoryService, urlManager: UrlManagerService, error: ErrorService, configService: ConfigService, obj: Models.DomainObjectRepresentation, routeData: PaneRouteData, forceReload: boolean);
    private readonly keySeparator;
    private props;
    private instanceId;
    unsaved: boolean;
    value: string;
    reference: string;
    selectedChoice: ChoiceViewModel | null;
    color: string;
    draggableType: string;
    draggableTitle: () => string;
    domainObject: Models.DomainObjectRepresentation;
    onPaneId: Pane;
    title: string;
    friendlyName: string;
    presentationHint: string;
    domainType: string;
    isInEdit: boolean;
    actions: ActionViewModel[];
    menuItems: MenuItemViewModel[];
    properties: PropertyViewModel[];
    collections: CollectionViewModel[];
    private readonly editProperties;
    private readonly isFormOrTransient;
    private readonly cancelHandler;
    private readonly saveHandler;
    private readonly validateHandler;
    private handleWrappedError(reject);
    private propertyMap;
    private wrapAction(a);
    private reset(obj, routeData, resetting);
    concurrency(): void;
    readonly clientValid: () => boolean;
    readonly tooltip: () => string;
    readonly actionsTooltip: () => "Close actions" | "No actions available" | "Open actions (Alt-a)";
    readonly toggleActionMenu: () => void;
    readonly setProperties: () => PropertyViewModel[];
    readonly doEditCancel: () => void;
    readonly clearCachedFiles: () => PropertyViewModel[];
    readonly doSave: (viewObject: boolean, onSuccess: () => void) => Promise<void>;
    readonly currentPaneData: () => PaneRouteData;
    readonly doSaveValidate: () => Promise<boolean>;
    readonly doEdit: () => void;
    readonly doReload: () => void;
    readonly hideEdit: () => boolean;
    readonly noActions: () => boolean;
    readonly canDropOn: (targetType: string) => Promise<boolean>;
    readonly showActions: () => boolean;
}
