import type { Drawing } from '@rnacanvas/draw';
import type { HorizontalScrollbar, VerticalScrollbar } from '@rnacanvas/scrollbars';
import { Point } from '@rnacanvas/points';
/**
 * Represents the user's view of a target drawing.
 */
export declare class DrawingView {
    private targetDrawing;
    private horizontalScrollbar;
    private verticalScrollbar;
    /**
     * Horizontal and vertical scrollbars are expected to match the target drawing perfectly.
     *
     * For instance, shifting the horizontal scrollbar all the way to the left
     * should correspond with the leftmost boundary of the target drawing,
     * shifting the vertical scrollbar all the way down
     * should correspond with the bottommost boundary of the target drawing, etc.
     *
     * There should be no extra space surrounding the target drawing that can be scrolled to.
     *
     * @param targetDrawing
     * @param horizontalScrollbar The horizontal scrollbar for the target drawing.
     * @param verticalScrollbar The vertical scrollbar for the target drawing.
     */
    constructor(targetDrawing: Drawing, horizontalScrollbar: HorizontalScrollbar, verticalScrollbar: VerticalScrollbar);
    /**
     * Returns the center point of the user's view of the target drawing in drawing coordinates
     * (i.e., in the coordinate system of the target drawing).
     */
    get centerPoint(): Point;
    set centerPoint(centerPoint: Point);
    fitTo(box: BoxLike): void;
    /**
     * Fits the user's view of the target drawing to its content.
     */
    fitToContent(): void;
    /**
     * Returns the serialized form of the drawing view.
     */
    serialized(): {
        centerPoint: Point;
    };
    /**
     * Restores a previous state of the drawing view.
     */
    restore(previousState: unknown): void | never;
}
type BoxLike = {
    readonly x: number;
    readonly y: number;
    readonly width: number;
    readonly height: number;
};
export {};
//# sourceMappingURL=DrawingView.d.ts.map