import { type CapsuleAnswerGroundingPolicy, type CapsuleLifecycleState, type CapsuleOutputMode, type CapsuleRetrievalEffort, type CapsuleSetId, type EmbeddingModelIdentity, type KnowledgeCapsule, type KnowledgeCapsuleId } from "@oscharko-dev/keiko-contracts";
import type { AuditEventSink } from "./privacy/types.js";
import type { KnowledgeStore } from "./store.js";
export interface CreateCapsuleInput {
    readonly id: KnowledgeCapsuleId;
    readonly displayName: string;
    readonly description?: string;
    readonly tags: readonly string[];
    readonly sourceRoutingInstructions?: string;
    readonly alwaysQuery?: boolean;
    readonly retrievalEffort: CapsuleRetrievalEffort;
    readonly outputMode: CapsuleOutputMode;
    readonly answerGroundingPolicy: CapsuleAnswerGroundingPolicy;
    readonly embeddingModelIdentity: EmbeddingModelIdentity;
    readonly lifecycleState: CapsuleLifecycleState;
    readonly storageReference: string;
}
export interface DeleteCapsuleResult {
    readonly capsuleId: KnowledgeCapsuleId;
    readonly affectedCapsuleSetIds: readonly CapsuleSetId[];
    readonly cleanupVerified: true;
}
export declare function createCapsule(store: KnowledgeStore, input: CreateCapsuleInput, auditSink?: AuditEventSink): KnowledgeCapsule;
export declare function getCapsule(store: KnowledgeStore, id: KnowledgeCapsuleId): KnowledgeCapsule | undefined;
export declare function listCapsules(store: KnowledgeStore): readonly KnowledgeCapsule[];
export declare function updateCapsuleState(store: KnowledgeStore, id: KnowledgeCapsuleId, state: CapsuleLifecycleState): KnowledgeCapsule;
export interface CapsuleDetailsPatch {
    readonly displayName?: string;
    readonly description?: string;
}
export declare function updateCapsuleDetails(store: KnowledgeStore, id: KnowledgeCapsuleId, patch: CapsuleDetailsPatch): KnowledgeCapsule;
export declare function deleteCapsule(store: KnowledgeStore, id: KnowledgeCapsuleId, auditSink?: AuditEventSink): DeleteCapsuleResult;
//# sourceMappingURL=capsule-lifecycle.d.ts.map