import type { LayoutNode } from './types.js'; /** * Check if a container node has downstream margin pollution. * * A container is "polluted" if: * 1. It does NOT use `gap` for inter-child spacing * 2. Its children use hardcoded margins (marginBottom, marginTop, * marginVertical, margin, marginLeft, marginRight, marginHorizontal) * * When polluted, semantic grouping or rhythm scaling suggestions * would only encapsulate bad patterns — the margins should be * removed and replaced with parent-controlled gap first. * * @param container - The container node to check * @returns true if the container has downstream margin pollution */ export declare function hasChildMarginPollution(container: LayoutNode): boolean; /** * v2.2.0: Check if a container has cumulative boundary padding * ("Ghost Margin"). * * A "ghost margin" occurs when the last child of a container has * paddingBottom that overlaps with the parent container's own * paddingBottom. This creates redundant boundary spacing that * makes the screen edge appear inconsistent. * * Example: * ← parent padding * ← last child padding * ...content... * * * → Total bottom spacing = 32px (redundant) * * @param container - The container node to check * @returns An object describing the ghost margin, or null if clean */ export interface GhostMarginResult { container: LayoutNode; lastChild: LayoutNode; parentPaddingBottom: number; childPaddingBottom: number; totalCumulative: number; } /** * v2.2.0: Detect cumulative boundary padding between a container * and its last child. * * @param container - The container node to check * @returns A GhostMarginResult if cumulative padding detected, null otherwise */ export declare function hasCumulativePaddingBoundary(container: LayoutNode): GhostMarginResult | null; /** * Generate a HIGH severity blocker message for a polluted container. * * @param componentName - The name of the polluted container * @returns Formatted blocker message string */ export declare function formatFoundationBlocker(componentName: string): string; //# sourceMappingURL=FoundationCheck.d.ts.map