import { RgbColor } from '../core/color'; export type LineCapStyle = 'butt' | 'round' | 'square'; export type LineJoinStyle = 'miter' | 'round' | 'bevel'; export type PaintMode = 'fill' | 'stroke' | 'fillStroke' | 'none'; export type TextRenderMode = 'fill' | 'stroke' | 'fillStroke' | 'invisible'; export interface Matrix { a: number; b: number; c: number; d: number; e: number; f: number; } export declare const identityMatrix: Matrix; export declare function multiplyMatrix(first: Matrix, second: Matrix): Matrix; export declare function translationMatrix(x: number, y: number): Matrix; export declare function rotationMatrix(degrees: number): Matrix; export declare function scalingMatrix(scaleX: number, scaleY: number): Matrix; export declare class ContentStream { private readonly operations; write(operation: string): this; saveState(): this; restoreState(): this; applyMatrix(matrix: Matrix): this; setFillColor(color: RgbColor): this; setStrokeColor(color: RgbColor): this; setLineWidth(width: number): this; setLineCap(style: LineCapStyle): this; setLineJoin(style: LineJoinStyle): this; setMiterLimit(limit: number): this; setDashPattern(pattern: number[], phase?: number): this; setExtGraphicsState(resourceName: string): this; moveTo(x: number, y: number): this; lineTo(x: number, y: number): this; curveTo(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number): this; closePath(): this; rectangle(x: number, y: number, width: number, height: number): this; clip(evenOdd?: boolean): this; paint(mode: PaintMode, evenOdd?: boolean): this; beginText(): this; endText(): this; setFont(resourceName: string, size: number): this; setTextMatrix(matrix: Matrix): this; setCharacterSpacing(spacing: number): this; setWordSpacing(spacing: number): this; setHorizontalScale(scalePercent: number): this; setTextRise(rise: number): this; setTextRenderMode(mode: TextRenderMode): this; setLeading(leading: number): this; nextLine(): this; showText(encoded: Uint8Array): this; drawXObject(resourceName: string): this; beginMarkedContent(tag: string): this; endMarkedContent(): this; isEmpty(): boolean; toString(): string; } export declare function roundedRectanglePath(stream: ContentStream, x: number, y: number, width: number, height: number, radius: number): void; export declare function ellipsePath(stream: ContentStream, centerX: number, centerY: number, radiusX: number, radiusY: number): void;