import { Locator } from "@readium/shared";
import { Comms } from "../comms/comms";
import { Module } from "./Module";
import { ModuleName } from "./ModuleLibrary";
import { ReadiumWindow } from "../helpers/dom";
export declare enum Width {
    Wrap = "wrap",// Smallest width fitting the CSS border box.
    Viewport = "viewport",// Fills the whole viewport.
    Bounds = "bounds",// Fills the anchor page, useful for dual page.
    Page = "page"
}
export declare enum Layout {
    Boxes = "boxes",// One HTML element for each CSS border box (e.g. line of text).
    Bounds = "bounds"
}
export interface Style {
    tint: string;
    layout: Layout;
    width: Width;
}
export interface Decoration {
    id: string;
    locator: Locator;
    style: Style;
}
export interface DecoratorRequest {
    group: string;
    action: "add" | "remove" | "clear" | "update";
    decoration: Decoration | undefined;
}
export declare class Decorator extends Module {
    static readonly moduleName: ModuleName;
    private resizeObserver;
    private backgroundObserver;
    private wnd;
    private resizeFrame;
    private lastGroupId;
    private groups;
    private cleanup;
    private updateHighlightStyles;
    private extractCustomProperty;
    private handleResize;
    private readonly handleResizer;
    mount(wnd: ReadiumWindow, comms: Comms): boolean;
    unmount(wnd: ReadiumWindow, comms: Comms): boolean;
}
