import { type Static } from "@sinclair/typebox"; import { type HappyPluginAppManifest, type HappyPluginManifest, type HappyPluginAppSidebar, type HappyPluginResourceMediaType } from "happy-plugins"; export type PluginAppManifest = HappyPluginAppManifest; export declare const PLUGIN_MANIFEST_FILE_NAME = "happy.plugin.json"; export declare const pluginManifestSchema: import("@sinclair/typebox").TObject<{ apps: import("@sinclair/typebox").TOptional; label: import("@sinclair/typebox").TString; order: import("@sinclair/typebox").TInteger; }>; title: import("@sinclair/typebox").TString; }>>>; author: import("@sinclair/typebox").TString; category: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"automation">, import("@sinclair/typebox").TLiteral<"collaboration">, import("@sinclair/typebox").TLiteral<"data">, import("@sinclair/typebox").TLiteral<"developer-tools">, import("@sinclair/typebox").TLiteral<"media">, import("@sinclair/typebox").TLiteral<"productivity">, import("@sinclair/typebox").TLiteral<"utilities">, import("@sinclair/typebox").TLiteral<"other">]>; compute: import("@sinclair/typebox").TOptional>; description: import("@sinclair/typebox").TString; docker: import("@sinclair/typebox").TOptional, import("@sinclair/typebox").TObject<{ image: import("@sinclair/typebox").TString; }>]>>; icon: import("@sinclair/typebox").TString; interceptDomains: import("@sinclair/typebox").TOptional>; main: import("@sinclair/typebox").TOptional; name: import("@sinclair/typebox").TString; skills: import("@sinclair/typebox").TOptional; systemPrompt: import("@sinclair/typebox").TOptional, import("@sinclair/typebox").TObject<{ path: import("@sinclair/typebox").TString; }>]>>; version: import("@sinclair/typebox").TOptional; }>; export type PluginManifest = HappyPluginManifest; export declare const pluginVersionSchema: import("@sinclair/typebox").TString; export type RegisteredPluginManifest = PluginManifest & Required>; export declare const fileSystemErrorSchema: import("@sinclair/typebox").TObject<{ code: import("@sinclair/typebox").TString; }>; export declare const pluginDockerRuntimeSchema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{ dockerfilePath: import("@sinclair/typebox").TString; type: import("@sinclair/typebox").TLiteral<"dockerfile">; }>, import("@sinclair/typebox").TObject<{ image: import("@sinclair/typebox").TString; type: import("@sinclair/typebox").TLiteral<"image">; }>]>; export type PluginDockerRuntime = Static; export interface RegisteredPlugin { directory: string; docker?: PluginDockerRuntime; entryPath?: string; folderName: string; icon: PluginIconSummary; iconPath: string; manifest: RegisteredPluginManifest; manifestPath: string; skillsPath?: string; systemPrompt?: string; } export interface PluginIconSummary { generation: string; mediaType: "image/png"; size: number; } export interface PluginIconResource extends PluginIconSummary { body: Buffer; } export interface PluginAppResourceSnapshot { body: Buffer; mediaType: HappyPluginResourceMediaType; path: string; } export interface PluginAppSnapshot { id: string; page: string; resources: readonly PluginAppResourceSnapshot[]; resourceUri: string; sidebar: HappyPluginAppSidebar; title: string; } export interface PluginRegistrationFailure { directory: string; error: string; folderName: string; } export interface PluginDiscovery { plugins: readonly RegisteredPlugin[]; failures: readonly PluginRegistrationFailure[]; } export interface PluginRuntimeSnapshot extends RegisteredPlugin { apps: readonly PluginAppSnapshot[]; }