import { BlockContainer } from './layout-flow.ts'; import { Image } from './layout-image.ts'; import { ShapedItem } from './layout-text.ts'; import type { Color } from './style.ts'; import type { LoadedFontFace } from './text-font.ts'; export interface PaintBackend { fillColor: Color; strokeColor: Color; lineWidth: number; direction: 'ltr' | 'rtl'; font: LoadedFontFace | undefined; fontSize: number; edge(x: number, y: number, length: number, side: 'top' | 'right' | 'bottom' | 'left'): void; text(x: number, y: number, item: ShapedItem, textStart: number, textEnd: number, isColorBoundary?: boolean): void; rect(x: number, y: number, w: number, h: number): void; pushClip(x: number, y: number, w: number, h: number): void; popClip(): void; image(x: number, y: number, width: number, height: number, image: Image): void; } /** * Paint the root element * https://www.w3.org/TR/CSS22/zindex.html */ export default function paint(block: BlockContainer, b: PaintBackend): void;