import { ElementContainer } from '../dom/element-container'; import { BoundCurves } from './bound-curves'; import { ClipPathEffect, EffectTarget, IElementEffect } from './effects'; import { Bounds } from '../css/layout/bounds'; import { ClipPathValue, ShapeRadius } from '../css/property-descriptors/clip-path'; export declare class StackingContext { element: ElementPaint; negativeZIndex: StackingContext[]; zeroOrAutoZIndexOrTransformedOrOpacity: StackingContext[]; positiveZIndex: StackingContext[]; nonPositionedFloats: StackingContext[]; nonPositionedInlineLevel: StackingContext[]; inlineLevel: ElementPaint[]; nonInlineLevel: ElementPaint[]; constructor(container: ElementPaint); } export declare class ElementPaint { readonly container: ElementContainer; readonly parent: ElementPaint | null; readonly effects: IElementEffect[]; readonly curves: BoundCurves; listValue?: string; /** Memoised getEffects results for the plain (surfaceRoot-less) render path. */ private plainEffectsCache; constructor(container: ElementContainer, parent: ElementPaint | null); getEffects(target: EffectTarget, surfaceRoot?: ElementPaint): IElementEffect[]; private computeEffects; } /** @internal – exported for testing only. */ export declare const hasOverflowClip: (styles: ElementContainer['styles']) => boolean; /** * Resolve a `closest-side` or `farthest-side` shape-radius keyword to pixels * for a single axis. Used by both `circle()` (per-axis) and `ellipse()`. * * @param r - The ShapeRadius (keyword or length-percentage). * @param center - Absolute center coordinate on this axis (cx or cy). * @param start - Absolute start of the reference box on this axis. * @param end - Absolute end of the reference box on this axis. * @param dimRef - Reference dimension for resolving a length-percentage value. * @internal – exported for testing only. */ export declare const resolveAxisRadius: (r: ShapeRadius, center: number, start: number, end: number, dimRef: number) => number; /** * Convert a parsed ClipPathValue + element bounds into a ClipPathEffect whose * `applyClip` callback draws the clip shape directly onto the canvas context. * * All coordinates are computed in page-absolute space at construction time so * the callback itself is allocation-free and executes synchronously. * @internal – exported for testing only. */ export declare const buildClipPathEffect: (clipPath: ClipPathValue, bounds: Bounds) => ClipPathEffect | null; export declare const parseStackingContexts: (container: ElementContainer) => StackingContext;