import type { ArtifactStore } from '../../core/artifact-store.js'; import type { CheckResult } from '../../core/report-schema.js'; import type { ServerConfig } from '../../core/server-manager.js'; import { type ViewportSize } from '../../integrations/playwright/context-factory.js'; import { type PortalConfig } from '../../integrations/portal/server.js'; import type { VisualThreshold } from '../visual/thresholds.js'; export type ComponentSource = 'storybook' | 'portal'; export type ComponentVisualCase = { id: string; storyId?: string | undefined; path?: string | undefined; baseline: string; baselineRoot?: string | undefined; viewport?: string | undefined; viewportSize?: ViewportSize | undefined; framing?: ComponentFraming | undefined; threshold?: VisualThreshold | undefined; blocking?: boolean | undefined; strict?: boolean | undefined; stateNote?: string | undefined; browserState?: ComponentBrowserState | undefined; probes?: ComponentProbes | undefined; }; export type ComponentBrowserState = { kind: 'hover' | 'focus'; selector: string; animationStabilization: { disableAnimations?: boolean | undefined; waitMs?: number | undefined; }; }; export type ComponentFraming = { rootSelector?: string | undefined; background?: string | undefined; align: 'center' | 'start'; padding: number; }; export type ComponentProbes = { parts: Record; }; export type ComponentProbePart = { selector: string; bounds?: boolean | undefined; styles?: string[] | undefined; cssVariables?: string[] | undefined; text?: boolean | undefined; }; export type ComponentVisualContractConfig = { enabled?: boolean | undefined; storybook?: ServerConfig | undefined; portal?: PortalConfig | undefined; cases: ComponentVisualCase[]; }; export declare function runComponentVisualContract(config: ComponentVisualContractConfig | undefined, store: ArtifactStore): Promise;