/**
 * CodeWhisperer Provider Types
 * 重构优化版本 - 基于demo2兼容性设计
 * 项目所有者: Jason Zhang
 */
/**
 * CodeWhisperer服务端点配置
 */
export interface CodeWhispererConfig {
    readonly endpoint: string;
    readonly profileArn: string;
    readonly origin: string;
    readonly chatTriggerType: string;
}
export interface TokenData {
    readonly accessToken: string;
    readonly refreshToken: string;
    readonly expiresAt?: string;
    readonly profileArn?: string;
    readonly authMethod?: string;
}
export interface RefreshRequest {
    readonly refreshToken: string;
}
export interface RefreshResponse {
    readonly accessToken: string;
    readonly refreshToken: string;
    readonly expiresAt?: string;
}
export interface AnthropicTool {
    readonly name: string;
    readonly description: string;
    readonly input_schema: Record<string, any>;
}
export interface AnthropicSystemMessage {
    readonly type: string;
    readonly text: string;
}
export interface AnthropicRequestMessage {
    readonly role: 'user' | 'assistant';
    readonly content: string | ContentBlock[];
}
export interface ContentBlock {
    readonly type: 'text' | 'tool_result' | 'tool_use';
    readonly text?: string;
    readonly tool_use_id?: string;
    readonly content?: string;
    readonly name?: string;
    readonly input?: any;
}
export interface AnthropicRequest {
    readonly model: string;
    readonly max_tokens: number;
    readonly messages: AnthropicRequestMessage[];
    readonly system?: AnthropicSystemMessage[];
    readonly tools?: AnthropicTool[];
    readonly stream?: boolean;
    readonly temperature?: number;
    readonly metadata?: Record<string, any>;
}
export interface ToolInputSchema {
    readonly json: Record<string, any>;
}
export interface CodeWhispererToolSpec {
    readonly name: string;
    readonly description: string;
    readonly inputSchema: ToolInputSchema;
}
export interface CodeWhispererTool {
    readonly toolSpecification: CodeWhispererToolSpec;
}
export interface UserInputMessage {
    readonly content: string;
    readonly modelId: string;
    readonly origin: string;
}
export interface UserInputMessageContext {
    readonly tools?: CodeWhispererTool[] | null;
    readonly toolResults?: ToolResult[] | null;
}
/**
 * 工具执行结果接口 - 支持工具调用结果传递
 * 基于demo3格式修复：content应该是数组格式，包含text对象
 */
export interface ToolResult {
    readonly toolUseId: string;
    readonly content: {
        text: string;
    }[];
    readonly status: 'success' | 'error';
}
export interface CurrentMessage {
    readonly userInputMessage: {
        readonly content: string;
        readonly modelId: string;
        readonly origin: string;
        readonly userInputMessageContext: UserInputMessageContext;
    };
}
export interface HistoryUserMessage {
    readonly userInputMessage: UserInputMessage;
}
export interface HistoryAssistantMessage {
    readonly assistantResponseMessage: {
        readonly content: string;
        readonly toolUses: readonly any[];
    };
}
export interface ConversationState {
    readonly chatTriggerType: string;
    readonly conversationId: string;
    readonly currentMessage: CurrentMessage;
    readonly history: readonly (HistoryUserMessage | HistoryAssistantMessage)[];
}
export interface CodeWhispererRequest {
    readonly conversationState: ConversationState;
    readonly profileArn: string;
}
export interface AssistantResponseEvent {
    readonly content?: string;
    readonly input?: string;
    readonly name?: string;
    readonly toolUseId?: string;
    readonly stop?: boolean;
}
export interface SSEEvent {
    readonly event: string;
    readonly data: any;
}
export interface ParsedToolCall {
    readonly name: string;
    readonly input: Record<string, any>;
    readonly id: string;
}
export interface ProcessingResult {
    readonly success: boolean;
    readonly events: readonly SSEEvent[];
    readonly toolCalls: readonly ParsedToolCall[];
    readonly textContent: string;
    readonly tokenCount: number;
}
/**
 * 模型映射接口 - 支持动态配置
 */
export interface ModelMapping {
    readonly [sourceModel: string]: string;
}
/**
 * 获取默认模型映射（仅作为fallback，实际使用路由引擎的映射）
 */
export declare function getDefaultModelMapping(): ModelMapping;
/**
 * CodeWhisperer服务默认配置
 */
export declare function createCodeWhispererConfig(): CodeWhispererConfig;
/**
 * 验证配置完整性
 */
export declare function validateConfig(config: CodeWhispererConfig): boolean;
export interface RequestValidationResult {
    readonly isValid: boolean;
    readonly errors: readonly string[];
    readonly warnings: readonly string[];
}
//# sourceMappingURL=types.d.ts.map