import { Configuration } from './common';

export * from './chat';
export * from './models';
export * from './common';
// FIXME wasm module imports don't work with commojs
export * from './usage';

export { PlatformEventEmitter, PlatformEventEmitterImpl } from './events';
export {
  ChatCompletion,
  ChatCompletionChunkDataEvent,
  ChatCompletionChunkChoice,
  ChatCompletionChoice,
  DataEventObjectType as ChatCompletionDataEventObjectType,
} from './features/chat-completion';
export {
  TextCompletion,
  TextCompletionChunkDataEvent,
  DataEventObjectType as TextCompletionDataEventObjectType,
} from './features/text-completion';
export {
  CreateEditDataEvent,
  DataEventObjectType as EditDataEventObjectType,
} from './features/edit';
export { ImageDataEvent, ImageSize } from './features/image';

export const PLATFORM_ID = 'openai' as const;

export interface PlatformConfig {
  platform: typeof PLATFORM_ID;
  platformConfiguration: Configuration;
}
