import type { Experience } from "./domain.js"; export type ListSort = "recent" | "used"; export interface ListFilters { tag?: string; unused?: boolean; reused?: boolean; since?: string; limit?: number; sort?: ListSort; } export interface ExperienceSummary { id: string; shortId: string; locator: string; title: string; tags: string[]; projectContext: string; createdAt: string; updatedAt: string; successfulUses: number; partialUses: number; failedUses: number; notApplicableUses: number; outdatedUses: number; totalAppliedUses: number; lastUsedAt: string | null; confidence: Experience["confidence"]; derivedFrom: string[]; appliedExperiences: string[]; } export interface ExperienceListResult { contractVersion: 1; appliedFilters: { tag: string | null; unused: boolean; reused: boolean; since: string | null; limit: number; sort: ListSort; }; totalCount: number; matchedCount: number; returnedCount: number; summaries: ExperienceSummary[]; } export interface ExperienceStats { contractVersion: 1; totalExperiences: number; reusedExperiences: number; unusedExperiences: number; totalSuccessfulUses: number; totalPartialUses: number; totalFailedUses: number; totalNotApplicableOutcomes: number; totalOutdatedOutcomes: number; experiencesWithoutFeedback: number; averageUsesPerReusedExperience: number; highConfidenceExperiences: number; lowConfidenceExperiences: number; mostReusedExperience: ExperienceSummary | null; recentlyCreatedExperiences: ExperienceSummary[]; } export declare function appliedUseCount(experience: Experience): number; export declare function feedbackOutcomeCount(experience: Experience): number; export declare function summarizeExperience(experience: Experience): ExperienceSummary; export declare function listExperienceSummaries(experiences: Experience[], filters?: ListFilters): ExperienceListResult; export declare function calculateExperienceStats(experiences: Experience[]): ExperienceStats; //# sourceMappingURL=observability.d.ts.map