import { FileUIPart } from 'ai'; interface BaseAddonProps { removable: boolean; singleton?: boolean; hidden?: boolean; } type BaseAddon = { id: string; type: PromptAddonType; }; export declare enum PromptAddonType { ATTACHMENT = "attachment", PREVIEW_ROUTE = "preview_route", SELECTED_ELEMENT = "selected_element" } export declare enum AttachmentVariant { IMAGE = "image", FILE = "file" } export interface AttachmentPromptAddon extends BaseAddon { type: PromptAddonType.ATTACHMENT; props: BaseAddonProps & { url: FileUIPart["url"]; variant: AttachmentVariant; mediaType: FileUIPart["mediaType"]; filename: FileUIPart["filename"]; uploadStatus: "uploading" | "success"; }; } export interface PreviewRoutePromptAddon extends BaseAddon { type: PromptAddonType.PREVIEW_ROUTE; props: BaseAddonProps & { path: string; }; } export interface SelectedElementPromptAddon extends BaseAddon { type: PromptAddonType.SELECTED_ELEMENT; props: BaseAddonProps & { xpath: string; uniqueId: string; pathname: string; previewText?: string; tagName?: string; elementId?: string; className?: string; }; } export type PromptAddon = AttachmentPromptAddon | PreviewRoutePromptAddon | SelectedElementPromptAddon; export type PropsForType = Extract["props"]; type PromptContextState = { addons: Array; }; type PromptContextActions = { addAddon: (type: T, props: PropsForType) => string; removeAddon: (id: string) => void; updateAddon: (id: string, props: Partial>) => void; clearAddons: () => void; clearAddonsByType: (type: T) => void; getAddonsByType: (type: T) => Array>; reset: () => void; }; export type PromptContextSlice = PromptContextState & PromptContextActions; export declare const promptContextSlice: import('@dhmk/zustand-lens').LensOpaqueType; export {}; //# sourceMappingURL=prompt-context.slice.d.ts.map