import { Field, FieldDef } from './field.model';
import { FieldList } from './fieldList.model';
export declare class EntityDef {
    private fields;
    private altdef?;
    private init?;
    constructor(entityDef?: {
        fields: {
            [fld: string]: Field | FieldDef;
        };
        altdef?: number;
        init?: number;
    } | EntityDef);
    /**
     * Gets the fields of this Entity Definition
     */
    getFields(): FieldList;
    /**
     * Get the given field from this Entity Definition
     * @param fld the name of the field
     */
    getField(fld: string): Field;
    /**
     * Get a list of all fields, that can be seen.
     * @param type  'lst' for list views (table), 'occ' for detail views, empty for reading without filter
     * @param write read and write rights are needed
     * @returns an array with all fields that fits the rigths
     */
    getFieldList(options: {
        type?: string;
        write?: boolean;
        meta?: FieldList;
    }): {
        fld: string;
        bez: string;
    }[];
    /**
     * Checks if the altdef flag is set.
     */
    getAltdef(): number;
    /**
     * Checks if the init flag is set.
     */
    getInitMode(): number;
    /**
     * Checks if the given field can be seen in a list
     * @param fld the name of the field
     * @param field an alternative field definition
     */
    listCanRead(fld: string, field?: Field): boolean;
    private canRead;
    private canReadWrite;
}
