/**
 * Generic Types - Provider-agnostic type definitions
 *
 * This module defines generic, provider-agnostic types that map to specific
 * provider implementations. It enables type-safe operations across different
 * LLM providers while maintaining compatibility with existing OpenAI types.
 *
 * Key Features:
 * - Provider-agnostic type definitions
 * - Backward compatibility with OpenAI types
 * - Type mapping utilities
 * - Generic request/response interfaces
 * - Extensible for future providers
 */
export type { LLMProvider, LLMProviderFactory, LLMProviderConfig, LLMProviderMetadata, LLMProviderStatus, LLMCapabilities, GenericAssistant, GenericTool, GenericThread, GenericMessage, GenericMessageContent, GenericRun, GenericRunStep, GenericCreateAssistantRequest, GenericUpdateAssistantRequest, GenericListRequest, GenericListResponse, GenericCreateThreadRequest, GenericUpdateThreadRequest, GenericCreateMessageRequest, GenericUpdateMessageRequest, GenericCreateRunRequest, GenericUpdateRunRequest, GenericSubmitToolOutputsRequest, } from '../services/llm-service.js';
export { LLMProviderError, createProviderError, } from '../services/llm-service.js';
export type { ProviderRegistryConfig, } from '../services/provider-registry.js';
export { ProviderRegistry, getGlobalProviderRegistry, initializeGlobalProviderRegistry, shutdownGlobalProviderRegistry, } from '../services/provider-registry.js';
import { Assistant, CreateAssistantRequest, Thread, Message, Run, RunStep } from './core-types.js';
import { GenericAssistant, GenericTool, GenericThread, GenericMessage, GenericMessageContent, GenericRun, GenericRunStep, GenericCreateAssistantRequest, GenericListResponse } from '../services/llm-service.js';
/**
 * Type Mapping Utilities
 * Functions to convert between provider-specific and generic types
 */
/**
 * Convert OpenAI Assistant to Generic Assistant
 */
export declare function mapOpenAIToGenericAssistant(openaiAssistant: Assistant): GenericAssistant;
/**
 * Convert Generic Assistant to OpenAI Assistant
 */
export declare function mapGenericToOpenAIAssistant(genericAssistant: GenericAssistant): Assistant;
/**
 * Convert OpenAI Tool to Generic Tool
 */
export declare function mapOpenAIToGenericTool(openaiTool: Assistant['tools'][0]): GenericTool;
/**
 * Convert Generic Tool to OpenAI Tool
 */
export declare function mapGenericToOpenAITool(genericTool: GenericTool): Assistant['tools'][0];
/**
 * Convert OpenAI Thread to Generic Thread
 */
export declare function mapOpenAIToGenericThread(openaiThread: Thread): GenericThread;
/**
 * Convert Generic Thread to OpenAI Thread
 */
export declare function mapGenericToOpenAIThread(genericThread: GenericThread): Thread;
/**
 * Convert OpenAI Message to Generic Message
 */
export declare function mapOpenAIToGenericMessage(openaiMessage: Message): GenericMessage;
/**
 * Convert Generic Message to OpenAI Message
 */
export declare function mapGenericToOpenAIMessage(genericMessage: GenericMessage): Message;
/**
 * Convert OpenAI Message Content to Generic Message Content
 */
export declare function mapOpenAIToGenericMessageContent(openaiContent: Message['content'][0]): GenericMessageContent;
/**
 * Convert Generic Message Content to OpenAI Message Content
 */
export declare function mapGenericToOpenAIMessageContent(genericContent: GenericMessageContent): Message['content'][0];
/**
 * Convert OpenAI Run to Generic Run
 */
export declare function mapOpenAIToGenericRun(openaiRun: Run): GenericRun;
/**
 * Convert Generic Run to OpenAI Run
 */
export declare function mapGenericToOpenAIRun(genericRun: GenericRun): Run;
/**
 * Convert OpenAI Run Step to Generic Run Step
 */
export declare function mapOpenAIToGenericRunStep(openaiRunStep: RunStep): GenericRunStep;
/**
 * Convert Generic Run Step to OpenAI Run Step
 */
export declare function mapGenericToOpenAIRunStep(genericRunStep: GenericRunStep): RunStep;
/**
 * Request Mapping Functions
 */
/**
 * Convert OpenAI Create Assistant Request to Generic
 */
export declare function mapOpenAIToGenericCreateAssistantRequest(openaiRequest: CreateAssistantRequest): GenericCreateAssistantRequest;
/**
 * Convert Generic Create Assistant Request to OpenAI
 */
export declare function mapGenericToOpenAICreateAssistantRequest(genericRequest: GenericCreateAssistantRequest): CreateAssistantRequest;
/**
 * Response Mapping Functions
 */
/**
 * Convert OpenAI List Response to Generic
 */
export declare function mapOpenAIToGenericListResponse<T, U>(openaiResponse: {
    object: 'list';
    data: T[];
    has_more: boolean;
    first_id?: string;
    last_id?: string;
}, mapper: (item: T) => U): GenericListResponse<U>;
/**
 * Convert Generic List Response to OpenAI
 */
export declare function mapGenericToOpenAIListResponse<T, U>(genericResponse: GenericListResponse<T>, mapper: (item: T) => U): {
    object: 'list';
    data: U[];
    has_more: boolean;
    first_id?: string;
    last_id?: string;
};
/**
 * Utility type for provider-specific data preservation
 */
export interface ProviderDataContainer<T = any> {
    providerData?: T;
}
/**
 * Helper function to preserve provider-specific data during conversions
 */
export declare function preserveProviderData<T extends ProviderDataContainer, U extends ProviderDataContainer>(source: T, target: U): U;
//# sourceMappingURL=generic-types.d.ts.map