import { DeleteDone, Env, ImageHandler, ItemConfig, ItemSession, SoundHandler, PieModel } from '@pie-players/pie-players-shared/types'; import { LoaderConfig } from '@pie-players/pie-players-shared/loader-config'; import { BackendConfig, BackendSaveContentOptions, BackendScoreOptions } from './backend/types.js'; export type AuthoringBackendMode = "demo" | "required"; export type { DeleteDone, ImageHandler, SoundHandler }; export type * from './backend/types.js'; export type AuthoringValidationResult = { hasErrors: boolean; validatedModels: any[]; }; export interface PieItemPlayerElement extends HTMLElement { config: ItemConfig; session: ItemSession; env: Env; strategy?: "iife" | "esm" | "preloaded"; mode?: "view" | "author"; configuration?: Record; authoringBackend?: AuthoringBackendMode; backend?: BackendConfig; renderStimulus?: boolean; allowedResize?: boolean; baseHeadingLevel?: 1 | 2 | 3 | 4 | 5 | 6; passageContainerClass?: string; customClassName?: string; customClassname?: string; bundleHost?: string; bundleEndpoints?: Record; disableBundler?: boolean; reFetchBundle?: boolean; onInsertImage?: (handler: ImageHandler) => void; onDeleteImage?: (src: string, done: DeleteDone) => void; onInsertSound?: (handler: SoundHandler) => void; onDeleteSound?: (src: string, done: DeleteDone) => void; loaderOptions?: Record; loaderConfig?: LoaderConfig; /** Legacy-compatible local browser scoring; returns one result slot per scored model. */ provideScore(): Promise | undefined>>; /** Legacy-compatible preview update for a single loaded PIE model. */ updateElementModel(update: Partial & { id: string; }): Promise; /** Authoring-mode validation for rendered configure elements. */ validateModels(): Promise; /** Load configured backend data into the existing config/session pipeline. */ loadFromBackend(scope?: "delivery" | "authoring"): Promise; /** Persist the current session through `backend.delivery`. */ saveSession(): Promise; /** Server-backed scoring through `backend.delivery`; distinct from local `provideScore()`. */ score(options?: BackendScoreOptions): Promise; /** Persist authoring content through `backend.authoring` when configured. */ saveContent(options?: BackendSaveContentOptions): Promise; /** Release authoring content through `backend.authoring` when configured. */ releaseContent(): Promise; } export interface PieItemSessionDebuggerElement extends HTMLElement { itemName?: string; itemId?: string; config?: unknown; session?: unknown; env?: unknown; score?: unknown; }