import { AuthConfig } from './auth-config'; export declare enum CreditUsageReason { UNKNOWN_CREDIT_USAGE_REASON = 0, EXPLORER_STEP = 1, TEST_REPAIR = 2, SCRIPT_GENERATE = 3 } export interface InsertCreditUsageRequest { credits?: number; usage_reason?: CreditUsageReason; job_id?: string; } export interface InsertCreditUsageResponse { } /** * Credit usage information for callback */ export interface CreditUsage { credits: number; usageReason: CreditUsageReason; jobId?: string; timestamp: number; } /** * Callback for credit usage reporting * Allows consumers to track credit usage in their own systems */ export type CreditUsageCallback = (usage: CreditUsage) => void | Promise; export declare class CreditUsageService { private backendUrl; private authConfig; private logger?; private creditUsageCallback?; constructor(authConfig?: AuthConfig, backendUrl?: string, creditUsageCallback?: CreditUsageCallback); /** * Set a logger callback for capturing execution logs */ setLogger(logger: (message: string, level?: 'log' | 'error' | 'warn') => void): void; /** * Set credit usage callback * Allows consumers to track credit usage in their own systems */ setCreditUsageCallback(callback: CreditUsageCallback): void; /** * Log a message using the configured logger */ private log; /** * Update authentication configuration */ setAuthConfig(authConfig: AuthConfig): void; /** * Get current authentication configuration */ getAuthConfig(): AuthConfig | null; /** * Report credit usage via callback and/or backend * * Behavior: * 1. If callback provided: Call callback (server-side uses this to update DB directly) * 2. If NO callback but auth configured: Make axios call to backend (client-side: vs-ext, github action) * 3. Server-side: Provides callback, no axios calls made * 4. Client-side: No callback, uses auth for axios calls to backend */ reportCreditUsage(credits: number | undefined, usageReason: CreditUsageReason, jobId?: string): Promise; /** * Report script generation credit usage */ reportScriptGenerationCredit(jobId?: string): Promise; /** * Report AI repair credit usage */ reportAIRepairCredit(jobId?: string): Promise; } //# sourceMappingURL=credit-usage-service.d.ts.map