import type * as Template from '../serial/serial-types'; import { Color } from '../controllers/Color'; import { Gradient } from '../controllers/Gradient'; import { ColorInput } from '../types/index'; import { Sprite } from '../controllers/sprites/Sprite'; import { Paint, SurfaceInput, DropShadowValue } from '../serial/builders'; export declare function channelHex(n: number): string; export declare function rgbToHex(red: number, green: number, blue: number, alpha?: number): string; /** * Apply an IDML tint (0..100 percentage; 100 = full color) to an RGB channel by * mixing toward paper-white, matching InDesign's on-screen tint: a 10% Black * becomes a light grey, 0% becomes white. */ export declare function applyTintChannel(channel: number, tint: number): number; export declare function colorToHex(color: Color, tint?: number): string; export declare function colorInputToHex(ci: ColorInput | undefined, tint?: number): string | undefined; export declare function gradientToSerial(gradient: Gradient, fillAngleDeg: number, tint?: number): Template.Elements.Gradient; export declare function paintFrom(value: Color | Gradient | undefined, gradientAngleDeg?: number, tint?: number): Paint; export declare function surfaceOf(sprite: Sprite): SurfaceInput; /** * Translate an InDesign drop shadow into the Bluepic `filter.dropShadow` value, * or null when the sprite has none. InDesign stores the offset (XOffset/YOffset) * and blur (Size) in the object's LOCAL, unscaled units; the serial applies them * in the element's local space and then scales/rotates by the element transform * — exactly how InDesign scales an effect with its object — so we pass them * through without compensation. The renderer wants a polar offset * (dx = sin(rot)·dist, dy = cos(rot)·dist), so cartesian -> (rotation°, distance). */ export declare function dropShadowValue(sprite: Sprite): DropShadowValue | null; //# sourceMappingURL=paint.d.ts.map