import type { ExtensionFactory, ExtensionContext } from '@earendil-works/pi-coding-agent'; import type { CollectionSessionRegistry } from './collection-sessions.js'; import { type DeliveryTransport } from './delivery.js'; import type { MemoryGovernanceService } from './memory-governance-service.js'; import type { RecalledMemory } from './openviking-client.js'; import { type Owner, type StateStore } from './types.js'; export { memoryRecallStateKey } from './recall-state.js'; export { governancePending } from './governance.js'; export { protectedMemoryResources } from './resource-profile.js'; export { FileStateStore } from './state-store.js'; export { DeliveryScheduler } from './scheduler.js'; export { CollectionScheduler } from './collection-scheduler.js'; export type { CollectionSchedulerOptions } from './collection-scheduler.js'; export { CollectionFactSelector, collectionSelectionPrompt } from './collection-selection.js'; export type { SelectedCollectionFact, CollectionSelectionResult } from './collection-selection.js'; export type { TaskFactPolicy, TaskFactProjection, TaskFactProjector } from './task-facts.js'; export { CollectionInputBuilder } from './collection-input.js'; export type { CollectionInputMessage, CollectionInputResult, CollectionUserTextProjector } from './collection-input.js'; export { CollectionLifecycle } from './collection-lifecycle.js'; export { CollectionSessionRegistry } from './collection-sessions.js'; export { MemoryDelivery } from './delivery.js'; export { MemoryGovernanceBarrier } from './governance.js'; export { MemoryClearCoordinator } from './governance-coordinator.js'; export { MemoryExportService } from './memory-export.js'; export type { MemoryExportTransport, ExportedMemory } from './memory-export.js'; export { MemorySelectiveService } from './memory-selective.js'; export type { SelectiveTransport, WriterClassifier } from './memory-selective.js'; export { MemoryGovernanceService, MemoryGovernanceScheduler } from './memory-governance-service.js'; export type { MemoryGovernanceClient, GovernanceReceipt } from './memory-governance-service.js'; export type { GovernanceTransport, GovernanceStateStore, GovernanceProgress } from './governance-coordinator.js'; export type { CollectionHandoffResult } from './delivery.js'; export { OwnerMemoryClient } from './openviking-client.js'; export type { Owner, OwnerState, Source, Operation, StateStore, CollectionBoundary, CollectionConsent, CollectionSource, CollectionRequest } from './types.js'; export type MemoryModel = Pick, 'id' | 'provider' | 'api'>; export interface MemoryExtensionOptions { owner: Owner; client: DeliveryTransport & { readMemory?(uri: string): Promise; recall(query: string, limit: number, signal?: AbortSignal): Promise; }; stateStore: StateStore; scope?: string | null; /** Host implementation must verify the live isolated worker, not a config flag. */ assertToolIsolation(): Promise; policy: { maxPayloadBytes: number; recallTimeoutMs: number; recallTokenBudget: number; recallLimit: number; minimumScore: number; /** Exact tokenizer for the active model, supplied by the trusted host. */ countTokens(text: string, context: { model: MemoryModel; signal: AbortSignal; }): number | Promise; }; /** Wake the owner-level bounded scheduler; does not perform a foreground flush. */ wakeDelivery(): void; collection?: { sessions: Pick; lifecycleTimeoutMs: number; /** Current configured rules; a changed version needs a separate collection grant. */ policyVersion?: string; wake(): void; onError?(code: 'MEMORY_COLLECTION_LIFECYCLE_UNAVAILABLE'): void; }; governance?: Pick & { wake(): void; }; } export declare function createOpenVikingExtension(options: MemoryExtensionOptions): ExtensionFactory;