/// /** * Copyright 2023 Kapeta Inc. * SPDX-License-Identifier: BUSL-1.1 */ import { EventEmitter } from 'node:events'; import { StormEvent } from './events'; import { AIFileTypes, GeneratedFile } from '@kapeta/codegen'; import { BlockDefinition } from '@kapeta/schemas'; import { BlockDefinitionInfo } from './event-parser'; export declare class StormStream extends EventEmitter { private conversationId; private lines; private aborted; private done; constructor(prompt?: string, conversationId?: string | null); getConversationId(): string; isAborted(): boolean; addJSONLine(line: string): void; end(): void; on(event: 'end', listener: () => void): this; on(event: 'aborted', listener: () => void): this; on(event: 'error', listener: (e: Error) => void): this; on(event: 'data', listener: (data: StormEvent) => void): this; emit(event: 'end'): boolean; emit(event: 'aborted'): void; emit(event: 'error', e: Error): boolean; emit(event: 'data', data: StormEvent): boolean; waitForDone(): Promise; abort(): void; } export interface ConversationItem { role: 'user' | 'model'; content: string; } export interface StormContextRequest { conversationId?: string; systemId?: string; history?: ConversationItem[]; prompt: T; } export interface StormCreateBlockRequest { definition: BlockDefinition; tmpPath: string; newPath: string; } export interface StormCodegenRequest { block: BlockDefinitionInfo; prompt: string; events: StormEvent[]; outDir: string; } export interface StormFileInfo extends GeneratedFile { type: AIFileTypes; } export interface StormFileImplementationPrompt { context: StormFileInfo[]; template: StormFileInfo; prompt: string; } export interface StormUIImplementationPrompt { events: StormEvent[]; template: StormFileInfo; filename: string; context: StormFileInfo[]; blockName: string; prompt: string; } export interface StormUIListPrompt { events: StormEvent[]; templates: StormFileInfo[]; context: StormFileInfo[]; blockName: string; prompt: string; } export declare enum HTMLPageEncoding { TEXT = "TEXT", BINARY = "BINARY" } export interface ImplementAPIClients { pages: HTMLPage[]; systemId: string; } export interface HTMLPage { fileName: string; content: string; encoding: HTMLPageEncoding; } export interface CreateSimpleBackendRequest { pages: HTMLPage[]; }