export declare const LOCAL_KNOWLEDGE_SCHEMA_VERSION: "1";
declare const KnowledgeCapsuleIdBrand: unique symbol;
declare const KnowledgeSourceIdBrand: unique symbol;
declare const CapsuleSetIdBrand: unique symbol;
declare const DocumentIdBrand: unique symbol;
declare const ChunkIdBrand: unique symbol;
declare const VectorIdBrand: unique symbol;
export type KnowledgeCapsuleId = string & {
    readonly [KnowledgeCapsuleIdBrand]: true;
};
export type KnowledgeSourceId = string & {
    readonly [KnowledgeSourceIdBrand]: true;
};
export type CapsuleSetId = string & {
    readonly [CapsuleSetIdBrand]: true;
};
export type DocumentId = string & {
    readonly [DocumentIdBrand]: true;
};
export type ChunkId = string & {
    readonly [ChunkIdBrand]: true;
};
export type VectorId = string & {
    readonly [VectorIdBrand]: true;
};
export type EmbeddingVectorMetric = "cosine" | "euclidean" | "dot";
export declare const EMBEDDING_VECTOR_METRICS: readonly EmbeddingVectorMetric[];
export interface EmbeddingModelIdentity {
    readonly provider: string;
    readonly modelId: string;
    readonly vectorDimensions: number;
    readonly vectorMetric: EmbeddingVectorMetric;
    readonly modelRevision?: string;
}
export interface ParserIdentity {
    readonly parserId: string;
    readonly parserVersion: string;
}
export type KnowledgeSourceScope = {
    readonly kind: "folder";
    readonly rootPath: string;
    readonly recursive: boolean;
    readonly includeGlobs?: readonly string[];
    readonly excludeGlobs?: readonly string[];
} | {
    readonly kind: "repository";
    readonly repositoryRoot: string;
    readonly includeGlobs?: readonly string[];
    readonly excludeGlobs?: readonly string[];
} | {
    readonly kind: "files";
    readonly rootPath: string;
    readonly files: readonly string[];
};
export type KnowledgeSourceScopeKind = KnowledgeSourceScope["kind"];
export declare const KNOWLEDGE_SOURCE_SCOPE_KINDS: readonly KnowledgeSourceScopeKind[];
export interface KnowledgeSource {
    readonly id: KnowledgeSourceId;
    readonly displayName: string;
    readonly description?: string;
    readonly tags: readonly string[];
    readonly scope: KnowledgeSourceScope;
    readonly createdAt: number;
    readonly updatedAt: number;
}
export type CapsuleLifecycleState = "draft" | "indexing" | "ready" | "stale" | "deleting" | "error";
export declare const CAPSULE_LIFECYCLE_STATES: readonly CapsuleLifecycleState[];
export type CapsuleRetrievalEffort = "minimal" | "default" | "deep";
export declare const CAPSULE_RETRIEVAL_EFFORTS: readonly CapsuleRetrievalEffort[];
export type CapsuleOutputMode = "answers" | "snippets" | "raw";
export declare const CAPSULE_OUTPUT_MODES: readonly CapsuleOutputMode[];
export type CapsuleAnswerGroundingPolicy = "require-citations" | "require-citations-or-state-no-evidence" | "best-effort";
export declare const CAPSULE_ANSWER_GROUNDING_POLICIES: readonly CapsuleAnswerGroundingPolicy[];
export interface KnowledgeCapsule {
    readonly id: KnowledgeCapsuleId;
    readonly displayName: string;
    readonly description?: string;
    readonly tags: readonly string[];
    readonly sourceIds: readonly KnowledgeSourceId[];
    readonly sourceRoutingInstructions?: string;
    readonly alwaysQuery?: boolean;
    readonly retrievalEffort: CapsuleRetrievalEffort;
    readonly outputMode: CapsuleOutputMode;
    readonly answerGroundingPolicy: CapsuleAnswerGroundingPolicy;
    readonly embeddingModelIdentity: EmbeddingModelIdentity;
    readonly lifecycleState: CapsuleLifecycleState;
    readonly storageReference: string;
    readonly metadata?: Readonly<Record<string, string>>;
    readonly createdAt: number;
    readonly updatedAt: number;
}
export interface CapsuleSet {
    readonly id: CapsuleSetId;
    readonly displayName: string;
    readonly description?: string;
    readonly tags: readonly string[];
    readonly capsuleIds: readonly KnowledgeCapsuleId[];
    readonly composedAt: number;
}
export declare const CAPSULE_METADATA_MAX_KEYS: 16;
export declare const CAPSULE_METADATA_KEY_MAX_CHARS: 128;
export declare const CAPSULE_METADATA_VALUE_MAX_CHARS: 1024;
export declare const CAPSULE_SET_MAX_MEMBERS: 16;
export interface UpdateCapsulePatch {
    readonly displayName?: string;
    readonly description?: string;
    readonly metadata?: Readonly<Record<string, string>>;
}
export interface CreateCapsuleSetBody {
    readonly displayName: string;
    readonly description?: string;
    readonly capsuleIds: readonly string[];
}
export type ConnectorNodeKind = "files-window" | "local-knowledge" | "conversation-center";
export declare const CONNECTOR_NODE_KINDS: readonly ConnectorNodeKind[];
export type LocalKnowledgeNodeTarget = {
    readonly kind: "capsule";
    readonly capsuleId: KnowledgeCapsuleId;
} | {
    readonly kind: "capsule-set";
    readonly capsuleSetId: CapsuleSetId;
};
export type ConnectorNode = {
    readonly kind: "files-window";
    readonly nodeId: string;
    readonly scope: KnowledgeSourceScope;
} | {
    readonly kind: "local-knowledge";
    readonly nodeId: string;
    readonly target: LocalKnowledgeNodeTarget;
} | {
    readonly kind: "conversation-center";
    readonly nodeId: string;
    readonly conversationId: string;
    readonly route: string;
};
export interface ConnectorNodeRef {
    readonly nodeId: string;
    readonly kind: ConnectorNodeKind;
}
export interface ConnectorEdge {
    readonly from: ConnectorNodeRef;
    readonly to: ConnectorNodeRef;
    readonly createdAt: number;
}
export interface ConnectorGraphState {
    readonly schemaVersion: typeof LOCAL_KNOWLEDGE_SCHEMA_VERSION;
    readonly nodes: readonly ConnectorNode[];
    readonly edges: readonly ConnectorEdge[];
    readonly updatedAt: number;
}
export {};
//# sourceMappingURL=local-knowledge.d.ts.map