/**
 * Budget Service Type Definitions
 *
 * Types for API usage tracking and budget management.
 *
 * @module types/budget.types
 */
// ======================
// Constants
// ======================
/**
 * Budget-related constants
 */
export const BUDGET_CONSTANTS = {
    /** Default configuration values */
    DEFAULTS: {
        DAILY_LIMIT: 50.0,
        WEEKLY_LIMIT: 200.0,
        MONTHLY_LIMIT: 500.0,
        WARNING_THRESHOLD: 0.8,
        MAX_TOKENS_PER_TASK: 100000,
    },
    /** Token cost rates by model (USD per token) */
    TOKEN_COSTS: {
        'claude-3-opus': { input: 0.000015, output: 0.000075 },
        'claude-3-5-sonnet': { input: 0.000003, output: 0.000015 },
        'claude-3-sonnet': { input: 0.000003, output: 0.000015 },
        'claude-3-haiku': { input: 0.00000025, output: 0.00000125 },
        'claude-opus-4': { input: 0.000015, output: 0.000075 },
        'claude-sonnet-4': { input: 0.000003, output: 0.000015 },
        default: { input: 0.000003, output: 0.000015 },
    },
    /** File paths */
    PATHS: {
        USAGE_DIR: 'usage',
        BUDGETS_FILE: 'budgets.json',
        BUDGETS_YAML_FILE: 'budgets.yaml',
    },
    /** Operation types */
    OPERATIONS: {
        TASK: 'task',
        CONTINUATION: 'continuation',
        MEMORY: 'memory',
        SOP: 'sop',
        QUALITY_GATE: 'quality_gate',
        PROMPT_BUILDING: 'prompt_building',
        OTHER: 'other',
    },
};
/**
 * Default global budget configuration
 */
export const DEFAULT_BUDGET_CONFIG = {
    scope: 'global',
    scopeId: 'global',
    dailyLimit: BUDGET_CONSTANTS.DEFAULTS.DAILY_LIMIT,
    weeklyLimit: BUDGET_CONSTANTS.DEFAULTS.WEEKLY_LIMIT,
    monthlyLimit: BUDGET_CONSTANTS.DEFAULTS.MONTHLY_LIMIT,
    maxTokensPerTask: BUDGET_CONSTANTS.DEFAULTS.MAX_TOKENS_PER_TASK,
    warningThreshold: BUDGET_CONSTANTS.DEFAULTS.WARNING_THRESHOLD,
};
/**
 * All budget operation types
 */
export const ALL_BUDGET_OPERATIONS = [
    'task',
    'continuation',
    'memory',
    'sop',
    'quality_gate',
    'prompt_building',
    'other',
];
/**
 * All budget scopes
 */
export const ALL_BUDGET_SCOPES = ['global', 'project', 'agent'];
/**
 * All budget periods
 */
export const ALL_BUDGET_PERIODS = ['day', 'week', 'month'];
//# sourceMappingURL=budget.types.js.map