export interface AiModelConfig {
    /** Unique model identifier (e.g., "claude-opus-4") */
    readonly id: string;
    /** Human-readable display name */
    readonly displayName: string;
    /** AI provider */
    readonly provider: 'Anthropic' | 'OpenAI' | 'Google';
    /** USD cost per million input tokens */
    readonly inputPricePerMillion: number;
    /** USD cost per million output tokens */
    readonly outputPricePerMillion: number;
    /** Average lines of code generated per agent turn */
    readonly avgThroughputLOCPerTurn: number;
    /** Context window size in thousands of tokens */
    readonly contextWindowK: number;
}
export interface LanguageTokenRatio {
    /** Language identifier (e.g., "typescript") */
    readonly language: string;
    /** Average tokens per character for this language */
    readonly tokensPerChar: number;
}
export interface TokenEstimate {
    /** Total input tokens (context + spec + tools) */
    readonly inputTokens: number;
    /** Total output tokens (code to generate) */
    readonly outputTokens: number;
    /** Tokens from codebase context scan */
    readonly codebaseContextTokens: number;
    /** Tokens from reading HU.md + FICHA-TECNICA.md */
    readonly specContentTokens: number;
    /** Tokens from MCP tool definitions overhead */
    readonly toolDefinitionsTokens: number;
    /** Estimated lines of code to generate */
    readonly locToGenerate: number;
    /** Detected language of the project */
    readonly language: string;
    /** Whether usage.json data was used to calibrate output tokens */
    readonly calibratedFromUsage: boolean;
}
export interface AiCostEstimate {
    /** Model identifier */
    readonly modelId: string;
    /** Human-readable model name */
    readonly displayName: string;
    /** Input tokens for this estimation */
    readonly inputTokens: number;
    /** Output tokens for this estimation */
    readonly outputTokens: number;
    /** Estimated cost in USD */
    readonly estimatedCostUsd: number;
    /** Confidence range as percentage (e.g., 30 means ±30%) */
    readonly confidenceRangePct: number;
    /** Estimated number of agent turns needed */
    readonly agentTurns: number;
}
export interface AiCostEstimateResult {
    /** Spec identifier that was estimated */
    readonly specId: string;
    /** Per-model cost estimates */
    readonly estimates: readonly AiCostEstimate[];
    /** Recommended model ID */
    readonly recommendedModelId: string;
    /** Reason for the recommendation */
    readonly recommendationReason: string;
    /** Estimated savings vs the most expensive model (USD) */
    readonly savingsVsExpensiveModel: number;
    /** Formatted markdown table for display */
    readonly markdownTable: string;
}
export interface AiModelPricingConfig {
    /** JSON schema URL */
    readonly $schema?: string;
    /** Config version */
    readonly version: string;
    /** ISO date of last price update */
    readonly lastUpdated: string;
    /** All model configurations */
    readonly models: readonly AiModelConfig[];
    /** Tokens-per-character ratios by language */
    readonly languageTokenRatios: Readonly<Record<string, number>>;
    /** Fixed constants used in estimation */
    readonly constants: {
        /** Fixed token overhead for MCP tool definitions */
        readonly toolDefinitionsOverheadTokens: number;
        /** Average characters per token (used for text→token conversion) */
        readonly charsPerToken: number;
        /** Average characters per line of code */
        readonly avgLOCChars: number;
    };
}
export interface EstimateAiCostInput {
    /** Spec ID to estimate (e.g., "SPEC-069") */
    readonly specId: string;
    /** Optional path to the project directory for codebase context scanning */
    readonly projectPath?: string;
}
//# sourceMappingURL=ai-cost.d.ts.map