import type { DocBlock } from '../docs/types';
import type { OwnerShipMeta } from '../ownership';
import type { PolicyRef } from '../policy/spec';
import { SpecContractRegistry } from '../registry';
export type KnowledgeCategory = 'canonical' | 'operational' | 'external' | 'ephemeral';
export interface KnowledgeSpaceMeta extends OwnerShipMeta {
    category: KnowledgeCategory;
}
export interface KnowledgeRetentionPolicy {
    /** TTL in days (null = indefinite). */
    ttlDays?: number | null;
    /** Auto-archive after inactivity. */
    archiveAfterDays?: number;
}
export interface KnowledgeAccessPolicy {
    /** Which PolicySpec governs access. */
    policy?: PolicyRef;
    /** Trust level for agent/workflow consumption. */
    trustLevel: 'high' | 'medium' | 'low';
    /** Can this space be mutated by automation? */
    automationWritable: boolean;
}
export interface KnowledgeIndexingConfig {
    embeddingModel?: string;
    chunkSize?: number;
    vectorDbIntegration?: string;
}
export interface KnowledgeSpaceSpec {
    meta: KnowledgeSpaceMeta;
    /** Retention and cleanup rules. */
    retention: KnowledgeRetentionPolicy;
    /** Access control and trust. */
    access: KnowledgeAccessPolicy;
    /** Optional embedding/indexing config. */
    indexing?: KnowledgeIndexingConfig;
    /** Documentation. */
    description?: string;
}
export declare class KnowledgeSpaceRegistry extends SpecContractRegistry<'knowledge-space', KnowledgeSpaceSpec> {
    constructor(items?: KnowledgeSpaceSpec[]);
    getByCategory(category: KnowledgeCategory): KnowledgeSpaceSpec[];
}
export declare function makeKnowledgeSpaceKey(meta: KnowledgeSpaceMeta): string;
export declare const tech_contracts_knowledge_DocBlocks: DocBlock[];
