/**
 * Artifact Metrics — record and query per-artifact token metrics
 *
 * Hooks into artifact save events, records path/type/agent/timestamp/tokens,
 * and persists to `.aiwg/metrics/tokens/`.
 *
 * @module metrics/artifact-metrics
 * @issue #173
 * @schema @agentic/code/frameworks/sdlc-complete/schemas/flows/token-efficiency.yaml
 */
import { type ThresholdStatus } from './token-counter.js';
export interface ArtifactMetricRecord {
    /** Artifact file path (relative to project root) */
    artifactPath: string;
    /** Artifact type (requirement, use_case, architecture, etc.) */
    artifactType: string;
    /** Agent that produced the artifact */
    agent: string;
    /** ISO 8601 timestamp */
    timestamp: string;
    /** Token metrics */
    tokens: {
        totalTokens: number;
        nonBlankLines: number;
        tokensPerLine: number;
        characters: number;
    };
    /** Threshold status */
    thresholdStatus: ThresholdStatus['level'];
}
export interface AgentEfficiencySummary {
    agentName: string;
    period: string;
    totalArtifacts: number;
    totalTokens: number;
    totalLines: number;
    avgTokensPerLine: number;
    minTokensPerLine: number;
    maxTokensPerLine: number;
    vsBenchmark: number;
    vsBaseline: number;
    trend: 'improving' | 'stable' | 'degrading';
    thresholdStatus: ThresholdStatus['level'];
}
export interface MetricsQueryOptions {
    /** Filter by agent name */
    agent?: string;
    /** Filter records since this ISO date or duration string (e.g. '7d', '30d') */
    since?: string;
    /** Include benchmark comparison */
    compareBenchmark?: boolean;
}
export declare class ArtifactMetricsStore {
    private projectPath;
    private metricsDir;
    private records;
    constructor(projectPath: string);
    /**
     * Record metrics for an artifact after save.
     */
    recordArtifact(artifactPath: string, content: string, artifactType: string, agent: string): Promise<ArtifactMetricRecord>;
    /**
     * Query records with optional filters.
     */
    queryRecords(options?: MetricsQueryOptions): ArtifactMetricRecord[];
    /**
     * Get per-agent efficiency summaries.
     */
    getAgentSummaries(options?: MetricsQueryOptions): AgentEfficiencySummary[];
    /**
     * Load records from disk.
     */
    load(): Promise<void>;
    /**
     * Persist records to disk.
     */
    private persist;
    /**
     * Get all records (for testing).
     */
    getAllRecords(): ArtifactMetricRecord[];
}
//# sourceMappingURL=artifact-metrics.d.ts.map