import { Expr, GpuFragmentParams } from '../../gpu/contract'; import { PropRef } from '../values'; import { ArgSpec } from '../invoke'; /** A generator paint: the composition builder a `role: 'generator'` definition runs. */ export type Paint = (params: GpuFragmentParams) => Expr; /** The {@link strokedSegment} noun's slots. */ export interface StrokedSegmentSlots { /** The segment endpoints (position props). */ from: PropRef; to: PropRef; /** Stroke thickness in canvas-height units. */ width: ArgSpec; /** Line style as a runtime mode number (solid 0 / dashed 1 / dotted 2). */ style: ArgSpec; /** Dash length (including caps) and the gap between dashes / spacing between dots. */ dashLength: ArgSpec; gapLength: ArgSpec; /** Cap shape per end as a runtime mode number (square 0 / rounded 1). */ capStart: ArgSpec; capEnd: ArgSpec; /** The stroke color prop. */ color: PropRef; } /** * A straight stroked segment between two points: per-end square/rounded caps, and dash/dot * patterns rescaled to land exactly on both endpoints. Antialiased with a ~1px device-space * feather at any thickness; degenerate (coincident) endpoints render a single cap-shaped point. */ export declare function strokedSegment(slots: StrokedSegmentSlots): Paint; /** The {@link sineStroke} noun's slots. */ export interface SineStrokeSlots { /** The wave's center (a position prop) and rotation in degrees. */ position: PropRef; angle: ArgSpec; /** Cycle count across the frame and wave height. */ frequency: ArgSpec; amplitude: ArgSpec; /** Band thickness and edge softness of the stroke. */ thickness: ArgSpec; softness: ArgSpec; /** The stroke color prop. */ color: PropRef; } /** * A traveling sine-wave stroke: a soft band of `thickness`/`softness` around an animated sine * centered on `position` and rotated by `angle`. Reads the definition's per-node animated time * (declare `animatedTime: {speed: ...}` on the definition). */ export declare function sineStroke(slots: SineStrokeSlots): Paint; //# sourceMappingURL=figures.d.ts.map