import type { FeatureKey, SegmentKey, AttributeKey } from "@featurevisor/types"; import { Dependencies } from "../dependencies"; import { Plugin } from "../cli"; export interface UsageInFeatures { [featureKey: string]: { features: Set; segments: Set; attributes: Set; }; } export declare function findAllUsageInFeatures(deps: Dependencies): Promise; export interface UsageInSegments { [segmentKey: string]: { attributes: Set; }; } export declare function findAllUsageInSegments(deps: Dependencies): Promise; export declare function findFeatureUsage(usageInFeatures: UsageInFeatures, searchFeatureKey: FeatureKey): Promise>; export declare function findSegmentUsage(usageInFeatures: UsageInFeatures, segmentKey: SegmentKey): Promise>; export interface AttributeUsage { features: Set; segments: Set; } export declare function findAttributeUsage(usageInFeatures: UsageInFeatures, usageInSegments: UsageInSegments, attributeKey: AttributeKey): Promise; export declare function findUnusedSegments(deps: Dependencies, usageInFeatures: UsageInFeatures): Promise>; export declare function findUnusedAttributes(deps: Dependencies, usageInFeatures: UsageInFeatures, usageInSegments: UsageInSegments): Promise>; export interface FindUsageOptions { feature?: string; segment?: string; attribute?: string; unusedSegments?: boolean; unusedAttributes?: boolean; authors?: boolean; } export declare function findUsageInProject(deps: Dependencies, options: FindUsageOptions): Promise; export declare const findUsagePlugin: Plugin;