import { type ExtensionChangeTarget } from "./change-marker.js"; import { type ExtensionContentEdit, type ExtensionLegacyPatch } from "./content-patch.js"; export declare const extensionsStore: import("../db/store-registry.js").Store; export declare function ensureExtensionsTables(): Promise; export declare function registerExtensionsShareable(): void; export interface ExtensionRow { id: string; name: string; description: string; content: string; icon: string | null; createdAt: string; updatedAt: string; archivedAt: string | null; hiddenAt: string | null; hiddenBy: string | null; ownerEmail: string; orgId: string | null; visibility: "private" | "org" | "public"; contentLength?: number; } export type ExtensionHistoryOperation = "create" | "baseline" | "metadata-update" | "content-update" | "restore"; export interface ExtensionHistoryEntry { id: string; extensionId: string; version: number; operation: string; summary: string; name: string; description: string; content?: string; icon: string | null; actorEmail: string | null; ownerEmail: string; orgId: string | null; visibility: "private" | "org" | "public"; createdAt: string; persisted: boolean; contentLength: number; } export interface ExtensionHistoryDiffLine { type: "equal" | "insert" | "delete"; text: string; } export interface ExtensionHistoryDetail { entry: ExtensionHistoryEntry; previous: ExtensionHistoryEntry | null; diff: ExtensionHistoryDiffLine[]; stats: { addedLines: number; deletedLines: number; changed: boolean; }; } export declare function getExtensionChangeTargets(id: string): Promise; export declare function notifyExtensionChangeForResource(id: string, beforeTargets?: ExtensionChangeTarget[]): Promise; export interface ListExtensionsOptions { includeHidden?: boolean; includeGloballyHidden?: boolean; includeContent?: boolean; } export declare function listExtensions(options?: ListExtensionsOptions): Promise; export declare function getExtension(id: string): Promise; export interface ListExtensionHistoryOptions { limit?: number; includeContent?: boolean; } export declare function listExtensionHistory(id: string, options?: ListExtensionHistoryOptions): Promise; export declare function getExtensionHistoryVersion(id: string, versionValue: number | string): Promise; export declare function restoreExtensionHistoryVersion(id: string, versionValue: number | string): Promise; export interface CreateExtensionData { name: string; description?: string; content?: string; icon?: string; } export declare function createExtension(data: CreateExtensionData): Promise; export declare function findRecentDuplicateExtension(data: { name: string; content: string; description?: string; icon?: string; }): Promise; export interface UpdateExtensionData { name?: string; description?: string; icon?: string; visibility?: "private" | "org" | "public"; } export declare function updateExtension(id: string, data: UpdateExtensionData): Promise; export interface UpdateExtensionContentOpts { content?: string; allowFullReplacement?: boolean; patches?: ExtensionLegacyPatch[]; edits?: ExtensionContentEdit[]; format?: boolean; } export declare function updateExtensionContent(id: string, opts: UpdateExtensionContentOpts): Promise; export declare function deleteExtension(id: string): Promise; export declare function getHiddenExtensionIdsForCurrentUser(): Promise>; export declare function hideExtension(id: string): Promise; export declare function unhideExtension(id: string): Promise; export declare function globalHideExtension(id: string): Promise; export declare function globalUnhideExtension(id: string): Promise;