@bernierllc/anthropic-client
Version:
Type-safe Anthropic Claude API client with automatic rate limiting, retry logic, streaming support, and cost tracking
63 lines • 1.64 kB
TypeScript
export declare enum ClaudeModel {
OPUS = "claude-3-opus-20240229",
SONNET = "claude-3-sonnet-20240229",
HAIKU = "claude-3-haiku-20240307",
SONNET_3_5 = "claude-3-5-sonnet-20241022"
}
export interface ModelPricing {
input: number;
output: number;
}
export declare const MODEL_PRICING: Record<ClaudeModel, ModelPricing>;
export interface AnthropicClientConfig {
apiKey: string;
maxRetries?: number;
rateLimit?: {
requestsPerMinute: number;
tokensPerMinute: number;
} | null;
defaultModel?: ClaudeModel;
enableLogging?: boolean;
}
export interface CompletionOptions {
model?: ClaudeModel;
maxTokens?: number;
temperature?: number;
topP?: number;
topK?: number;
stopSequences?: string[];
systemPrompt?: string;
metadata?: Record<string, unknown>;
}
export interface CompletionResult {
success: boolean;
content?: string;
usage?: {
inputTokens: number;
outputTokens: number;
totalTokens: number;
};
cost?: {
inputCost: number;
outputCost: number;
totalCost: number;
};
model?: string;
stopReason?: string;
error?: string;
}
export type StreamChunkCallback = (chunk: string) => void | Promise<void>;
export interface UsageStats {
totalRequests: number;
totalInputTokens: number;
totalOutputTokens: number;
totalTokens: number;
totalCost: number;
requestsByModel: Record<string, number>;
}
export interface RateLimitStatus {
requestsRemaining: number;
tokensRemaining: number;
resetTime: Date;
}
//# sourceMappingURL=types.d.ts.map