/** * Copyright 2023 Kapeta Inc. * SPDX-License-Identifier: BUSL-1.1 */ /// import { UIPagePrompt } from './stormClient'; import { StormEvent, StormEventPage, StormImage, UIShell } from './events'; import { EventEmitter } from 'node:events'; export interface ImagePrompt { name: string; description: string; source: 'local' | 'cdn' | 'example'; title: string; type: 'image' | 'css' | 'javascript' | 'html'; url: string; content: string; } type InitialPrompt = Omit & { shellType?: 'public' | 'admin' | 'user'; }; export declare class PageQueue extends EventEmitter { private readonly queue; private readonly eventQueue; private readonly handle; private readonly systemId; private readonly systemPrompt; private readonly references; private readonly pages; private readonly images; private uiShells; private theme; constructor(handle: string, systemId: string, systemPrompt: string, concurrency?: number); on(event: 'error', listener: (error: unknown) => void): this; on(event: 'event', listener: (data: StormEvent) => void | Promise): this; on(event: 'page', listener: (data: StormEventPage) => void | Promise): this; on(event: 'image', listener: (data: StormImage, source: ImagePrompt) => void | Promise): this; emit(type: 'error', error: unknown): boolean; emit(type: 'event', event: StormEvent): boolean; emit(type: 'page', event: StormEventPage): boolean; emit(type: 'image', event: StormImage, source: ImagePrompt): boolean; addUiShell(uiShell: UIShell): void; setUiTheme(theme: string): void; private hasPrompt; addPrompt(initialPrompt: InitialPrompt, conversationId?: string, overwrite?: boolean, globalEdit?: boolean): Promise; /** * Get the existing pages */ private getExistingPages; private processPageEventWithReferences; cancel(): void; wait(): Promise; private addImagePrompt; generate(prompt: UIPagePrompt, conversationId: string): Promise; private resolveReferences; } export {};