import { PropertyDescriptorParams, PropertyDescriptor } from "./PropertyDescriptor";
export interface ElementParams<T> extends PropertyDescriptorParams<T> {
    order: number;
    name: string;
    required?: boolean;
    collectionEntryType?: any;
}
/**
 * An OFX element, applied to a javabean property.
 */
export declare class Element extends PropertyDescriptor {
    private _name;
    private _required;
    private _order;
    private _collectionEntryType;
    constructor(params: ElementParams<any>);
    /**
     * The name of the element.
     *
     * @return The name of the element.
     */
    name(): string;
    /**
     * Whether this element is required.
     *
     * @return Whether this element is required.
     */
    required(): boolean;
    /**
     * The order this element comes in its parent aggregate.
     *
     * @return The order this element comes in its parent aggregate.
     */
    order(): number;
    /**
     * If the type is a collection, return the type of the elements of the collection (otherwise null)
     */
    collectionEntryType(): any;
}
