import type { AuthorizationAudience, AuthorizationEvidence, AuthorizationEvidenceReference, IdentitySubject, ProjectAction } from '../policy/types.js'; export type ProjectStoreKind = 'legacy-repo' | 'central-folder' | 'memory'; export type EvidenceCategory = 'calls' | 'emails' | 'slack' | 'figma' | 'mobbin'; export declare const KNOWLEDGE_DOCUMENT_ALLOWLIST: readonly ["brief.md", "requirements.md", "decisions.md", "context.md", "ds-guide.md", "ds-status.md"]; export declare const EVIDENCE_CATEGORY_ALLOWLIST: readonly ["calls", "emails", "slack", "figma", "mobbin"]; export interface ProjectRegistryRecord { projectId: string; storeKind: ProjectStoreKind; locationKey: string; } export interface ProjectAuthorizationUse { readonly projectId: string; readonly requestId: string; readonly subject: IdentitySubject; readonly bindingDigest?: string; } export interface ConnectorAuthorizationUse extends ProjectAuthorizationUse { readonly connectorCapability: string; } export interface SafeRedactionSummary { readonly category: string; readonly count: number; } export interface ProjectKnowledgeSnapshotItem { readonly tier: 'K3' | 'K4'; readonly logicalPath: string; readonly content: string; readonly revision: number; readonly snapshotGeneration: string; readonly redactions: readonly SafeRedactionSummary[]; } export interface ProjectKnowledgeSnapshot { readonly projectId: string; readonly generation: string; readonly items: readonly ProjectKnowledgeSnapshotItem[]; } export type EvidenceWriteResult = { status: 'stored' | 'duplicate' | 'conflict'; }; export interface ProjectStore { readonly authorizationAudience: AuthorizationAudience; verifyAuthorization(evidence: AuthorizationEvidence, use: ProjectAuthorizationUse, action: ProjectAction, connectorCapability?: string, evidenceCategory?: EvidenceCategory): AuthorizationEvidenceReference; readDocument(evidence: AuthorizationEvidence, use: ProjectAuthorizationUse, relativePath: string): Promise; writeDocument(evidence: AuthorizationEvidence, use: ProjectAuthorizationUse, relativePath: string, content: string): Promise; appendDocument(evidence: AuthorizationEvidence, use: ProjectAuthorizationUse, relativePath: string, content: string): Promise; putEvidence(evidence: AuthorizationEvidence, use: ConnectorAuthorizationUse, category: EvidenceCategory, fileName: string, content: string): Promise; listEvidenceNames(evidence: AuthorizationEvidence, use: ProjectAuthorizationUse, category: EvidenceCategory): Promise; resolveDestination(evidence: AuthorizationEvidence, use: ProjectAuthorizationUse, relativePath: string, action: ProjectAction): Promise; readKnowledgeSnapshot(evidence: AuthorizationEvidence, use: ProjectAuthorizationUse, action?: 'read' | 'write'): Promise; }