import { AfterViewInit, ElementRef, OnDestroy, OnInit, QueryList, Renderer2 } from '@angular/core';
import { FormGroup } from '@angular/forms';
import * as Ro from '@nakedobjects/restful-objects';
import { LoggerService } from '@nakedobjects/services';
import { AttachmentViewModel, ChoiceViewModel, DomainObjectViewModel, DragAndDropService, PropertyViewModel } from '@nakedobjects/view-models';
import { Dictionary } from 'lodash';
import { AutoCompleteComponent } from '../auto-complete/auto-complete.component';
import { DatePickerFacadeComponent } from '../date-picker-facade/date-picker-facade.component';
import { FieldComponent } from '../field/field.component';
import { TimePickerFacadeComponent } from '../time-picker-facade/time-picker-facade.component';
import * as i0 from "@angular/core";
export declare class EditPropertyComponent extends FieldComponent implements OnInit, OnDestroy, AfterViewInit {
    constructor(loggerService: LoggerService, renderer: Renderer2, dragAndDrop: DragAndDropService);
    private prop;
    focusList?: QueryList<ElementRef | DatePickerFacadeComponent | TimePickerFacadeComponent | AutoCompleteComponent>;
    checkboxList?: QueryList<ElementRef>;
    parent?: DomainObjectViewModel;
    set property(value: PropertyViewModel);
    get property(): PropertyViewModel;
    get propertyPaneId(): string;
    get propertyId(): string;
    get propertyChoices(): ChoiceViewModel[];
    get title(): string;
    get propertyType(): "scalar" | "ref";
    get propertyReturnType(): string;
    get propertyEntryType(): Ro.EntryType;
    get isEditable(): boolean;
    get formattedValue(): string;
    get value(): string;
    get format(): Ro.FormatType;
    get isBlob(): boolean;
    get isMultiline(): boolean;
    get isPassword(): boolean;
    get multilineHeight(): string;
    get rows(): number;
    get propertyDescription(): string;
    get message(): string;
    get attachment(): AttachmentViewModel | null;
    choiceName(choice: ChoiceViewModel): string;
    classes(): Dictionary<boolean | null>;
    set form(fm: FormGroup);
    get form(): FormGroup;
    ngOnInit(): void;
    onKeydown(event: KeyboardEvent): void;
    onKeypress(event: KeyboardEvent): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<EditPropertyComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<EditPropertyComponent, "nof-edit-property", never, { "parent": { "alias": "parent"; "required": false; }; "property": { "alias": "property"; "required": true; }; "form": { "alias": "form"; "required": true; }; }, {}, never, never, false, never>;
}
