import type { GraphEdge } from "audit-tools/shared"; export interface WorkspacePattern { pattern: string; negated: boolean; } export declare function addWorkspacePattern(patterns: WorkspacePattern[], rawPattern: string): void; export declare function collectWorkspacePatternValues(value: unknown, patterns: WorkspacePattern[]): void; export declare function normalizeWorkspacePattern(workspacePath: string, pattern: string): string | undefined; export declare function globPatternToRegExp(pattern: string): RegExp; export declare function workspacePatternMatchesManifest(workspacePattern: string, manifestPath: string, manifestName: string): boolean; /** * The workspace member-resolution algorithm shared by every manifest ecosystem: * normalize each raw pattern against the declaring manifest, split positive from * negated, cross-product the positives against the repo path lookup, and drop * any target a negation also matches. * * Ecosystems differ only in the four values passed in — which manifest filename * marks a member, which paths count as a manifest, and the edge's kind / * confidence / reason. Those are genuine INPUT, not policy knobs selected here. * * Iteration order of `pathLookup` does NOT reach the artifact: these edges land * in `acc.references`, which `uniqueSortedEdges` dedupes and sorts by * from/to/kind before it is hashed, so the content-derived order invariant holds * downstream rather than here. */ export declare function workspaceMemberEdges(options: { fromPath: string; rawPatterns: WorkspacePattern[]; pathLookup: Map; manifestName: string; isMemberManifest: (path: string) => boolean; kind: string; confidence: number; reason: (pattern: string, target: string) => string; }): GraphEdge[]; //# sourceMappingURL=workspace.d.ts.map