import { ModelComponent } from "./ModelComponent";
import { Surface } from "./Surface";
import { RectangleF } from "../Math/RectangleF";
import { SafetyLine } from "./SafetyLine";
import { CropMark } from "./CropMark";
import { Collection } from "../Collection";
import { Margin } from "../Math/Margin";
import { PrintAreaBoundsType } from "./PrintAreaBoundsType";
import { Path } from "../Math/Path";
export declare class PrintArea extends ModelComponent {
    parentSurface: Surface;
    private _shape;
    private _safetyLines;
    private _cropMarks;
    private _bleed;
    private _slug;
    constructor(bounds?: RectangleF, bleed?: Margin, slug?: Margin, shape?: Path);
    get isRectangle(): boolean;
    get bounds(): RectangleF;
    set bounds(value: RectangleF);
    get shape(): Path;
    set shape(value: Path);
    get safetyLines(): Collection<SafetyLine>;
    set safetyLines(value: Collection<SafetyLine>);
    get cropMarks(): Collection<CropMark>;
    set cropMarks(value: Collection<CropMark>);
    get bleed(): Margin;
    set bleed(value: Margin);
    get slug(): Margin;
    set slug(value: Margin);
    getBounds(type: PrintAreaBoundsType): RectangleF;
    private _ensureShape;
    private _resizeShape;
    private _subscribeShapeChanged;
    private _unsubscribeShapeChanged;
    private _onShapePathChanged;
    private _subscribeBleedPropertyChanged;
    private _unsubscribeBleedPropertyChanged;
    private _onBleedPropertyChanged;
    private _subscribeSlugPropertyChanged;
    private _unsubscribeSlugPropertyChanged;
    private _onSlugPropertyChanged;
    private _validateMargin;
    getSimplifiedObject(): {};
    protected _copy(source: PrintArea, destination: PrintArea, generateNewIds: boolean): void;
    clone(generateNewIds?: boolean): PrintArea;
    generateNewIds(): void;
}
