import { ComputedRef, Ref } from 'vue'; import { CreateLcmsBatchCollectionOptions, CreateQpcrExpressionCollectionOptions, CreateWellPlateScreenCollectionOptions, TemplatePresetId } from '../templates'; type TemplatePresetCollectionOptions = CreateWellPlateScreenCollectionOptions | CreateQpcrExpressionCollectionOptions | CreateLcmsBatchCollectionOptions; export interface UseExperimentSaveOptions { /** Default plugin_id for all save/load calls. */ pluginId?: string; /** Default schema version for design saves (defaults to "1.0"). */ schemaVersion?: string; /** Override API base URL. */ apiBaseUrl?: string; } export interface UseExperimentSaveReturn { /** Current experiment id from platform injection, URL query, or URL path. */ currentExperimentId: ComputedRef; /** Whether a current experiment id is available. */ hasCurrentExperiment: ComputedRef; /** Whether a save operation is in progress. */ isSaving: Ref; /** Whether a load or delete operation is in progress. */ isLoading: Ref; /** Error message from the last failed operation, or null. */ error: Ref; /** Timestamp of the last successful load, or null. */ lastLoadedAt: Ref; /** Timestamp of the last successful save, or null. */ lastSavedAt: Ref; /** Save design data for an experiment. */ saveDesign: (experimentId: number, data: Record) => Promise; /** Save design data for the current experiment. */ saveCurrentDesign: (data: Record) => Promise; /** Create and save a built-in biology template preset as experiment design data. */ saveTemplatePreset: (experimentId: number, name: TemplatePresetId | string, options?: TemplatePresetCollectionOptions) => Promise; /** Create and save a built-in biology template preset for the current experiment. */ saveCurrentTemplatePreset: (name: TemplatePresetId | string, options?: TemplatePresetCollectionOptions) => Promise; /** Save analysis result for an experiment. */ saveAnalysis: (experimentId: number, result: Record) => Promise; /** Save analysis result for the current experiment. */ saveCurrentAnalysis: (result: Record) => Promise; /** Save design and/or analysis in one call. */ save: (experimentId: number, opts: { design?: Record; analysis?: Record; }) => Promise; /** Load design data for an experiment. */ loadDesign: (experimentId: number) => Promise | null>; /** Load design data for the current experiment. */ loadCurrentDesign: () => Promise | null>; /** Load analysis result for an experiment. */ loadAnalysis: (experimentId: number) => Promise | null>; /** Load analysis result for the current experiment. */ loadCurrentAnalysis: () => Promise | null>; /** Delete design data for an experiment. */ deleteDesign: (experimentId: number) => Promise; /** Delete design data for the current experiment. */ deleteCurrentDesign: () => Promise; /** Delete analysis result for an experiment. */ deleteAnalysis: (experimentId: number) => Promise; /** Delete analysis result for the current experiment. */ deleteCurrentAnalysis: () => Promise; /** Require and return the current experiment id, or throw when missing. */ requireCurrentExperimentId: () => number; } /** * Persists experiment design, analysis, and built-in template preset data through the platform API. * * @deprecated Scheduled for removal in MINT 1.4; no SDK replacement. */ export declare function useExperimentSave(options?: UseExperimentSaveOptions): UseExperimentSaveReturn; export {};