import { UAttribute } from "./attribute";
import { UField } from "./field";
export declare class UModel {
    private _name;
    private _fields;
    private _attributes;
    constructor(name: string);
    $name(): string;
    $field(field: UField | string): UField | null;
    $fields(): UField[];
    $attribute<Type>(attribute: UAttribute<Type> | string): UAttribute<any> | null;
    $attributes(): UAttribute<any>[];
    attributes(attributes: UAttribute<any>[]): this;
    name(name: string): this;
    fields(fields: UField[]): this;
    extends(model: UModel): this;
    remove(fields: (UField | string)[]): this;
    pick(srcModel: UModel, fields: (UField | string)[]): this;
    removeAttributes(attributes: UAttribute<any>[]): this;
}
