export type Status = 'initial' | 'activated' | 'waiting' | 'completed' | 'copied'; export type Mode = 'normal' | 'templates'; export declare class Template { id: string; name: string; icon: string; private data; options?: string[] | undefined; constructor(id: string, name: string, icon: string, data: string, options?: string[] | undefined); private formatString; hasOptions(): boolean | undefined; getPrompt(text: string, ...args: string[]): string; } export type FetchTemplateTags = () => Promise; export interface FetchTemplatesRequest { offset?: number; limit?: number; tag?: string; } export type FetchTemplates = (payload?: FetchTemplatesRequest) => Promise; export type Completions = (payload: CompletionsPayload) => Promise; export type Parameter = StringParameter | NumberParameter | SelectParameter | LanguageParameter; export interface ParameterizedTemplate { id: string; type: 'image' | 'function' | 'prompt' | 'api'; name: string; icon: string; description: string; parameters?: Parameter[]; createdAt: string; updatedAt: string; source: string; projectId?: string; ref?: string; resourceComponentDid?: string; } export interface BaseParameter { key?: string; label?: string; placeholder?: string; helper?: string; required?: boolean; } export interface StringParameter extends BaseParameter { type?: 'string'; value?: string; defaultValue?: string; multiline?: boolean; minLength?: number; maxLength?: number; } export interface NumberParameter extends BaseParameter { type: 'number'; value?: number; defaultValue?: number; min?: number; max?: number; } export interface SelectParameter extends BaseParameter { type: 'select'; value?: string; defaultValue?: string; options?: { id: string; label: string; value: string; }[]; } export interface LanguageParameter extends BaseParameter { type: 'language'; value?: string; defaultValue?: string; } export interface ParameterizedTemplateCompletionsPayload { source: string; projectId?: string; ref?: string; resourceComponentDid?: string; assistantId: string; parameters: { [key: string]: any; }; } export type CompletionsPayload = string | ParameterizedTemplateCompletionsPayload;