import type { IssueContext } from "./context.js"; export interface SiblingFact { id: string; severity: string; category: string; attribute: string; title: string; } /** * The other open issues filed against the same screenshots, one row per * issue and defect however many screenshots they share. Empty without the * backlog in hand, or for a source finding, which has no screenshot. */ export declare function siblingsOf(ctx: IssueContext): SiblingFact[]; export interface ScopeFacts { target: string; url: string | null; startHint: string | null; /** Every route a ruling re-captures. */ routes: string[]; /** The ones the shell rule added from the config, not where this was filed. */ added: string[]; shell: boolean; /** The judge panel that re-judges, or null when lookout's own checks rule. */ panel: string | null; /** "web", or the device platform the cluster was photographed on. */ platform: string; /** Web: the three form factors. Device: the kinds a run must have, then the ones taken when booted. */ formFactors: string[]; schemes: string[]; } /** What a ruling will photograph, from the same derivation the verb uses. Null for a source finding. */ export declare function scopeOf(ctx: IssueContext): ScopeFacts | null; export interface ArtifactFact { name: string; path: string; exists: boolean; /** Under the project's `.lookout/`, which outlives the capture workspace. */ durable: boolean; } /** Where everything lookout wrote about this lives, absolute, with whether it is there now. */ export declare function artifactsOf(ctx: IssueContext): ArtifactFact[];