import type { ArkmeExtensionCatalogPage, ArkmeExtensionCompleteDeleteResult, ArkmeExtensionDeleteResult, ArkmeExtensionPublishResult, ArkmeExtensionVisibility, DynamicCordisInventoryRowLike, DynamicCordisRunnerLike } from './types.js'; import type { ArkmeMyExtensionPage, ArkmeMyExtensionPublishInput, ArkmePreparedExtensionPublish } from './owned-types.js'; import type { ArkmeOwnedExtensionRefs } from './owned-refs.js'; import type { ArkmeOwnedExtensionStore } from './owned-store.js'; import { type ArkmeNativeBundlePublishSource } from './bundle-artifact.js'; interface AgentRegistryLike { get(sessionId: string): unknown; } interface ProviderStateLike { authStatus: string; userId?: number; } interface PublishInput { agent: unknown; pluginId: string; packageId: string; packageName: string; extensionId?: string; name: string; description: string; version: string; visibility: ArkmeExtensionVisibility; changelog?: string; githubRepositoryUrl?: string; idempotencyKey: string; signal?: AbortSignal; } interface PublishBundleInput { source: ArkmeNativeBundlePublishSource; extensionId?: string; name: string; description: string; visibility: ArkmeExtensionVisibility; changelog?: string; githubRepositoryUrl?: string; idempotencyKey: string; signal?: AbortSignal; } interface ArkmeOwnedExtensionLifecycle { deleteCloud(extensionId: string, signal?: AbortSignal): Promise; uninstall(input: { agent: unknown; extensionId: string; }): Promise<{ extension_id: string; installed: false; active: false; restart_required: boolean; message: string; }>; canUninstallWithoutAgent(extensionId: string): boolean; installedProfilePackageName(extensionId: string): string | undefined; removeProfilePackage(packageName: string): Promise; } export interface ArkmeOwnedExtensionInventoryOptions { hostInstanceId: string; profileDirectory: string; profileName: string; store: ArkmeOwnedExtensionStore; refs: ArkmeOwnedExtensionRefs; providerState(): Promise; cloudList(input: { cursor?: string; limit: number; }, signal?: AbortSignal): Promise; runner: DynamicCordisRunnerLike; agents: AgentRegistryLike; publish(input: PublishInput): Promise; publishBundle?(input: PublishBundleInput): Promise; lifecycle?: ArkmeOwnedExtensionLifecycle; } /** Host owner for current-account Cordis, Profile-local and cloud extension projections. */ export declare class ArkmeOwnedExtensionInventory { private readonly options; constructor(options: ArkmeOwnedExtensionInventoryOptions); captureCordisDefinition(input: { agentId: string; pluginId: string; creatorUserId: number; }): void; list(input?: { currentSessionId?: string; signal?: AbortSignal; }): Promise; publish(input: ArkmeMyExtensionPublishInput & { signal?: AbortSignal; }): Promise; /** * Preserve registry rows/artifacts for rollback, while removing every current-account runtime, * Profile dependency, install row, lineage row, and short-lived source reference. */ delete(input: { extensionId: string; agent?: unknown; signal?: AbortSignal; }): Promise; preparePublish(input: ArkmeMyExtensionPublishInput, signal?: AbortSignal): Promise; publishCordis(input: ArkmeMyExtensionPublishInput & { signal?: AbortSignal; }): Promise; publishCordisPackage(input: Omit & { agent: unknown; pluginId: string; packageId: string; extensionId?: string; signal?: AbortSignal; }): Promise; private publishTarget; private publishProfileTarget; private cloudItems; private publishExtensionId; private preparePublishIdentity; private ownedCloudPackageName; private assertUpdatePackageIdentity; private linkPublishedTarget; private project; private currentUserId; private cordisSourceKey; } export declare function selectPublishPackage(input: Pick): string | undefined; export {}; //# sourceMappingURL=owned-inventory.d.ts.map