import { NeuraSDK } from '../core/neura-sdk';

// Example usage
async function example() {
  // Initialize the SDK
  const neura = new NeuraSDK({
    baseUrl: 'https://api.example.com',
    apiKey: 'your-api-key',
    maxRetries: 3,
    requestsPerMinute: 60,
    enableCache: true
  });

  console.log('Example 1: Non-streaming completion');
  try {
    const response = await neura.createCompletion({
      messages: JSON.stringify([{ role: 'user', content: 'Hello, how are you?' }]),
    });
    console.log('Response:', response);
  } catch (error) {
    console.error('Error:', error);
  }

  console.log('\nExample 2: Streaming completion');
  const stream = neura.createCompletionStream({
    messages: JSON.stringify([{ role: 'user', content: 'Tell me a short story' }]),
  });

  let fullResponse = '';
  
  stream.on('chunk', (chunk) => {
    console.log('Received chunk:', chunk);
    fullResponse += chunk.chunk;
  });
  
  stream.on('done', () => {
    console.log('Stream complete');
    console.log('Full response:', fullResponse);
  });
  
  stream.on('error', (error) => {
    console.error('Stream error:', error);
  });
}

// Run the example
example().catch(console.error);