import { INotifyPropertyChanged } from "../INotifyPropertyChanged";
import { EventWithSenderArg } from "../EventObject";
import { ModelComponent } from "../Product/ModelComponent";
import { ILtrb } from "./ILtrb";
export interface IMargin {
    left: number;
    top: number;
    right: number;
    bottom: number;
}
export declare class Margin extends ModelComponent implements INotifyPropertyChanged<Margin, string>, ILtrb {
    private _left;
    private _top;
    private _right;
    private _bottom;
    constructor(value?: number | {
        horizontal: number;
        vertical: number;
    } | {
        left: number;
        top: number;
        right: number;
        bottom: number;
    });
    get left(): number;
    set left(value: number);
    get top(): number;
    set top(value: number);
    get right(): number;
    set right(value: number);
    get bottom(): number;
    set bottom(value: number);
    clone(): Margin;
    get isEmpty(): boolean;
    equals(other: Margin): boolean;
    getSimplifiedObject(): {
        left: number;
        top: number;
        right: number;
        bottom: number;
    };
    protected _propertyChanged: EventWithSenderArg<Margin, string>;
    addPropertyChanged(listener: (sender: Margin, eventArgs: string) => void): void;
    removePropertyChanged(listener: (sender: Margin, eventArgs: string) => void): void;
}
