import { AfterViewInit } from "@angular/core";
import { PathService } from "../service/path.service";
import { IForm, IPathApp, IFormHandler, IFormBean } from "../pathinterface";
import { FormField } from "./field/form-field";
import { Key } from "../page/element/page-element";
import { FormFunction } from "./form-function";
import * as i0 from "@angular/core";
export declare class FormComponent implements AfterViewInit {
    form: Form;
    onSubmit(): void;
    ngAfterViewInit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<FormComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<FormComponent, "path-form", never, { "form": "form"; }, { "form": "form"; }, never, never>;
}
export declare class Form implements IForm {
    private pathService;
    private app;
    private _key;
    private _title;
    private _fields;
    private _rows;
    private _handler;
    private _url;
    private _urlDefaults;
    private _bean;
    private _formFunction;
    private _headerVisible;
    private _footerVisible;
    private _borderStyle;
    constructor(pathService: PathService, app: IPathApp);
    getApp(): IPathApp;
    getKey(): Key;
    get key(): Key;
    set key(value: Key);
    get rows(): FormRow[];
    get title(): string;
    set title(value: string);
    getFields(): FormField[];
    get fields(): FormField[];
    set fields(value: FormField[]);
    get handler(): IFormHandler;
    set handler(value: IFormHandler);
    get url(): string;
    set url(value: string);
    get bean(): IFormBean;
    set bean(value: IFormBean);
    get formFunction(): FormFunction;
    set formFunction(value: FormFunction);
    get headerVisible(): boolean;
    set headerVisible(value: boolean);
    get footerVisible(): boolean;
    set footerVisible(value: boolean);
    get borderStyle(): BorderStyle;
    set borderStyle(value: BorderStyle);
    get urlDefaults(): boolean;
    fromJson(modelForm: any): void;
    updateRows(): void;
    private calculateFieldRow;
    close(save: boolean, remove: boolean): void;
    onKey(event: any): void;
}
export declare class FormRow {
    private _fields;
    get fields(): FormField[];
    set fields(value: FormField[]);
    getWidth(): number;
    isVisible(): boolean;
}
export declare enum BorderStyle {
    None = 1,
    Shadow = 2
}
