recoder-shared
Version:
Shared types, utilities, and configurations for Recoder
94 lines • 3.58 kB
TypeScript
/**
* Recoder.xyz Unified SDK
* Cross-platform SDK for all Recoder platforms
*/
import { EventEmitter } from 'events';
import { AuthClient } from './auth-client';
import { WebSocketClient } from './websocket-client';
import { SyncClient } from './sync-client';
import { AIClient } from './ai-client';
export interface RecoderSDKConfig {
baseURL?: string;
webSocketURL?: string;
platform: 'cli' | 'web' | 'mobile' | 'extension' | 'desktop';
deviceName?: string;
enableWebSocket?: boolean;
enableAutoSync?: boolean;
apiKey?: string;
debug?: boolean;
}
export interface AIProvider {
name: string;
status: 'healthy' | 'degraded' | 'offline' | 'error';
responseTime?: number;
errorRate?: number;
uptime?: number;
}
export interface AIProviderRecommendation {
taskType: string;
recommended: {
provider: string;
name: string;
reason: string;
status: string;
};
fallbacks: Array<{
provider: string;
name: string;
status: string;
}>;
}
export interface AnalyticsData {
eventType: 'api_call' | 'code_generation' | 'authentication' | 'sync' | 'ai_request';
provider?: string;
tokens?: number;
cost?: number;
duration?: number;
success?: boolean;
metadata?: any;
}
export declare class RecoderSDK extends EventEmitter {
private config;
private api;
auth: AuthClient;
websocket?: WebSocketClient;
sync?: SyncClient;
ai: AIClient;
constructor(config: RecoderSDKConfig);
private setupAPIInterceptors;
private initializeClients;
private setupEventForwarding;
private onAuthenticated;
private onLogout;
initialize(): Promise<void>;
connect(): Promise<void>;
disconnect(): void;
getAIProviderStatus(): Promise<AIProvider[]>;
healthCheckAIProviders(): Promise<{
providers: any;
overall: any;
}>;
getAIProviderRecommendation(taskType: 'coding' | 'blockchain' | 'security' | 'analysis' | 'chat' | 'generation', priority?: 'speed' | 'cost' | 'quality'): Promise<AIProviderRecommendation>;
getAIProviderCosts(timeframe?: 'hour' | 'day' | 'week' | 'month'): Promise<any>;
trackAnalytics(data: AnalyticsData): Promise<void>;
getAnalyticsDashboard(timeframe?: 'hour' | 'day' | 'week' | 'month'): Promise<any>;
getPerformanceMetrics(): Promise<any>;
getRealTimeAnalytics(): Promise<any>;
sendNotification(type: 'info' | 'success' | 'warning' | 'error' | 'system', title: string, message: string, data?: any): Promise<void>;
broadcastNotification(channel: string, event: string, type: 'info' | 'success' | 'warning' | 'error' | 'system', title: string, message: string, data?: any): Promise<void>;
isReady(): boolean;
getStatus(): any;
switchToPlatform(targetPlatform: string, context?: any): Promise<void>;
startCollaboration(projectId: string): Promise<void>;
stopCollaboration(projectId: string): Promise<void>;
private getVersion;
private getPlatformDetails;
private handleError;
}
export declare function createWebSDK(config?: Partial<RecoderSDKConfig>): RecoderSDK;
export declare function createCLISDK(config?: Partial<RecoderSDKConfig>): RecoderSDK;
export declare function createMobileSDK(config?: Partial<RecoderSDKConfig>): RecoderSDK;
export declare function createDesktopSDK(config?: Partial<RecoderSDKConfig>): RecoderSDK;
export declare function createExtensionSDK(config?: Partial<RecoderSDKConfig>): RecoderSDK;
export default RecoderSDK;
//# sourceMappingURL=recoder-sdk.d.ts.map