import { VectorPath, VectorShape } from '../core/vector.js'; export type { PathSegment, StrokeStyle, VectorPath, VectorShape } from '../core/vector.js'; export { PathBuilder } from '../core/vector.js'; /** * Emit a {@link VectorShape} as PDF content-stream operators (ISO 32000 §8.5), * wrapped in a `q`/`Q` save-restore with the shape's transform as the CTM. The * subpaths are painted with a single operator, so the winding rule is decided * once (even-odd if any subpath asks). * * @param shape The shape to draw. * @param patternName When set, the fill is this named shading pattern from the * page's `/Pattern` resources (a gradient, EP16b) rather than a solid colour; * only used if the shape actually carries a `fillGradient`. * @param alphaStateName When set, the shape's shadow is drawn first, under this * named `/ExtGState` (its constant alpha) from the page's resources. * @returns The content-stream operator lines. */ /** * §20.1.8.40 `blurRad` — how a blurred shadow is drawn: as `count` copies of * the silhouette, each at `alpha` transparency, growing through the blur's * width. Shared with the emitter that registers the /ExtGState for it, so the * alpha it registers is the one the layers are drawn at. * * @param shadow The shadow (its `blurPt` and `alpha` are read). * @returns The number of layers and the transparency of each. */ export declare function shadowBlurLayers(shadow: { readonly blurPt: number; readonly alpha: number; }): { count: number; alpha: number; }; export declare function emitVectorShape(shape: VectorShape, patternName?: string, alphaStateName?: string, fillAlphaStateName?: string): Array; /** * The operators that make `paths` the current CLIP, under `transform` — the * same local→y-up-page matrix {@link emitVectorShape} takes. Emitted inside the * caller's own `q`…`Q`, and followed by the inverse matrix so what comes after * is back in page coordinates. * * @param paths The clip outline, in the shape's local frame. * @param transform The local→page matrix. * @returns The operators: `cm`, the path, `W n`, and the inverse `cm`. */ export declare function emitClipPath(paths: ReadonlyArray, transform: readonly [number, number, number, number, number, number]): Array;