import type { CellEvidence } from "../../../playwright/src/cell-runner.js";
import type { MatrixCell } from "../../../schema/src/records/context.js";
export declare const RELATIONS_DETECTOR_VERSION = "1.0.0";
export declare const RELATIONS_RULE_IDS: readonly ["UI-034"];
export type RelationsRuleId = (typeof RELATIONS_RULE_IDS)[number];
export type RelationsFixtureVariant = "positive" | "negative" | "intentional-exception" | "rtl" | "changed-fingerprint";
export type ExtractedRepresentation = {
    id: string;
    source: string;
    kind: string;
    value: unknown;
    provenance: "observed";
};
export type RelationsWidgetProbe = {
    widgetId: string;
    locator: string;
    kind: "quota";
    representations: ExtractedRepresentation[];
};
export type RelationsProbe = {
    relationsVersion: string;
    widgets: RelationsWidgetProbe[];
};
export type RelationsArtifactRef = {
    relativePath: string;
    contentHash: string;
    mediaType: string;
    dimensions?: {
        width: number;
        height: number;
    };
};
export type RelationsCellEvidence = CellEvidence & {
    relationsProbe: RelationsProbe;
    relationsArtifacts: {
        fullScreenshot: RelationsArtifactRef;
    };
};
export type RelationsFixture = {
    fixtureId: string;
    ruleId: RelationsRuleId;
    variant: RelationsFixtureVariant;
    route: string;
    html: string;
    apiRemaining: number;
    cell?: Partial<MatrixCell>;
    intentionalContractId?: string;
};
export type RelationsViolationFact = {
    ruleId: RelationsRuleId;
    uniRule: "UNI-020" | "UNI-021" | "UNI-022" | "UNI-023" | "UNI-024";
    kind: string;
    locator: string;
    relationId: string;
    noWinner: boolean;
    facts: Array<{
        nodeId: string;
        normalizedValue: unknown;
    }>;
    measurement: Record<string, unknown>;
    summary: string;
};
export type Ui001EvidenceRecord = {
    ruleId: RelationsRuleId;
    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: RelationsViolationFact;
};
//# sourceMappingURL=types.d.ts.map