import type { CellEvidence } from "../../../playwright/src/cell-runner.js";
import type { MatrixCell } from "../../../schema/src/records/context.js";
export declare const CONSISTENCY_DETECTOR_VERSION = "1.0.0";
export declare const CONSISTENCY_RULE_IDS: readonly ["UI-040", "UI-041", "UI-042", "UI-043", "UI-044"];
export type ConsistencyRuleId = (typeof CONSISTENCY_RULE_IDS)[number];
export declare const COHORT_KINDS: readonly ["standard", "checkout", "authentication", "embedded", "offline", "error"];
export type CohortKind = (typeof COHORT_KINDS)[number];
export type ConsistencyFixtureVariant = "positive" | "negative" | "intentional-exception" | "rtl" | "changed-fingerprint";
export type SharedChromeFingerprint = {
    landmarks: string[];
    accessibleLabels: Array<{
        locator: string;
        label: string;
    }>;
    links: Array<{
        href: string;
        label: string;
    }>;
    authControls: Array<{
        kind: string;
        label: string;
        locator: string;
    }>;
    headings: Array<{
        level: number;
    }>;
    locale: string;
    direction: "ltr" | "rtl";
    componentSignatures: string[];
};
export type DocumentRect = {
    x: number;
    y: number;
    width: number;
    height: number;
};
export type SharedChromeMemberGeometry = Record<string, DocumentRect>;
export type ComputedStyleFingerprint = {
    typography: Array<{
        locator: string;
        fontFamily: string;
        fontSize: string;
        fontWeight: string;
        lineHeight: string;
    }>;
    spacing: Array<{
        locator: string;
        margin: string;
        padding: string;
        gap: string;
    }>;
    borders: Array<{
        locator: string;
        border: string;
        borderRadius: string;
        boxShadow: string;
    }>;
    visibility: Array<{
        locator: string;
        opacity: string;
        visibility: string;
        display: string;
    }>;
    stacking: Array<{
        locator: string;
        zIndex: string;
        position: string;
    }>;
    tokens: Array<{
        name: string;
        resolved: string;
    }>;
};
export type ConsistencyProbe = {
    cohortKind: CohortKind;
    observedCohortKind: CohortKind;
    sharedChrome: SharedChromeFingerprint;
    memberGeometry: SharedChromeMemberGeometry;
    computedStyle?: ComputedStyleFingerprint;
    fingerprintHash: string;
    styleFingerprintHash?: string;
};
export type ConsistencyArtifactRef = {
    relativePath: string;
    contentHash: string;
    mediaType: string;
    sourceRunId?: string;
    dimensions?: {
        width: number;
        height: number;
    };
};
export type ConsistencyCellEvidence = CellEvidence & {
    consistencyProbe: ConsistencyProbe;
    consistencyArtifacts: {
        fullScreenshot: ConsistencyArtifactRef;
    };
};
export type FingerprintCluster = {
    fingerprintHash: string;
    cellIds: string[];
    prevalence: number;
    provisional: true;
};
export type StructuralDiffEntry = {
    path: string;
    dominant: unknown;
    outlier: unknown;
    kind?: "missing" | "unexpected" | "changed" | "reordered";
};
export type ConsistencyMatrixEvidence = {
    matrixId: string;
    cells: ConsistencyCellEvidence[];
    clustersByCohort: Record<string, FingerprintCluster[]>;
    dominantClusterByCohort: Record<string, FingerprintCluster | undefined>;
};
export type ConsistencyFixturePage = {
    route: string;
    html: string;
    cell?: Partial<MatrixCell>;
};
export type ConsistencyFixture = {
    fixtureId: string;
    ruleId: ConsistencyRuleId;
    variant: ConsistencyFixtureVariant;
    route?: string;
    html?: string;
    cell?: Partial<MatrixCell>;
    pages?: ConsistencyFixturePage[];
    intentionalContractId?: string;
};
export type ConsistencyViolationFact = {
    ruleId: ConsistencyRuleId;
    kind: string;
    locator: string;
    summary: string;
    measurement: Record<string, unknown>;
};
export type Ui001EvidenceRecord = {
    ruleId: ConsistencyRuleId;
    route: string;
    url: string;
    role: string;
    locale: string;
    viewport: MatrixCell["viewport"];
    state: MatrixCell["state"];
    actions: MatrixCell["actions"];
    timestampPhase: string;
    targetLocator: string;
    measuredEvidence: Record<string, unknown>;
    screenshotRefs: string[];
    detectorVersion: string;
    classificationBasis: string;
    violation: ConsistencyViolationFact;
};
//# sourceMappingURL=types.d.ts.map