type TrustZoneName = "quarantine" | "working" | "trusted";
type TrustZoneRecordKind = "memory" | "artifact" | "state" | "trajectory" | "external";
type TrustZoneSourceClass = "tool_output" | "web_content" | "subagent_trace" | "system_memory" | "user_input" | "manual";
declare function isTrustZoneName(value: string): value is TrustZoneName;
interface TrustZoneProvenance {
    sourceClass: TrustZoneSourceClass;
    observedAt: string;
    sessionKey?: string;
    sourceId?: string;
    evidenceHash?: string;
}
interface TrustZoneRecord {
    schemaVersion: 1;
    recordId: string;
    zone: TrustZoneName;
    recordedAt: string;
    kind: TrustZoneRecordKind;
    summary: string;
    provenance: TrustZoneProvenance;
    promotedFromZone?: TrustZoneName;
    entityRefs?: string[];
    tags?: string[];
    metadata?: Record<string, string>;
}
type TrustZoneScoreBand = "low" | "medium" | "high";
interface TrustZoneProvenanceScore {
    total: number;
    band: TrustZoneScoreBand;
    anchored: boolean;
    sourceClassWeight: number;
    sourceIdBonus: number;
    evidenceHashBonus: number;
    sessionKeyBonus: number;
}
interface TrustZoneStoreStatus {
    enabled: boolean;
    promotionEnabled: boolean;
    poisoningDefenseEnabled: boolean;
    rootDir: string;
    zonesDir: string;
    records: {
        total: number;
        valid: number;
        invalid: number;
        byZone: Partial<Record<TrustZoneName, number>>;
        byKind: Partial<Record<TrustZoneRecordKind, number>>;
        latestRecordId?: string;
        latestRecordedAt?: string;
        latestZone?: TrustZoneName;
        averageTrustScore?: number;
        byTrustBand?: Partial<Record<TrustZoneScoreBand, number>>;
    };
    latestRecord?: TrustZoneRecord;
    latestRecordTrustScore?: TrustZoneProvenanceScore;
    invalidRecords: Array<{
        path: string;
        error: string;
    }>;
}
interface TrustZonePromotionPlan {
    allowed: boolean;
    reasons: string[];
    sourceRecordId: string;
    sourceZone: TrustZoneName;
    targetZone: TrustZoneName;
    provenanceAnchored: boolean;
}
interface TrustZonePromotionResult {
    plan: TrustZonePromotionPlan;
    wroteRecord: boolean;
    record: TrustZoneRecord;
    filePath?: string;
    sourceRecord: TrustZoneRecord;
}
interface TrustZoneSearchResult {
    record: TrustZoneRecord;
    score: number;
    matchedFields: string[];
}
interface TrustZoneRecordEntry {
    filePath: string;
    record: TrustZoneRecord;
}
interface TrustZoneListResult {
    total: number;
    count: number;
    limit: number;
    offset: number;
    records: TrustZoneRecordEntry[];
    allRecords: TrustZoneRecord[];
}
interface TrustZonePromotionReadiness {
    nextTargetZone?: TrustZoneName;
    allowed: boolean;
    reasons: string[];
    requiresCorroboration: boolean;
    corroborationCount: number;
    corroborationSourceClasses: TrustZoneSourceClass[];
}
interface TrustZoneDemoSeedResult {
    scenario: string;
    dryRun: boolean;
    recordsWritten: number;
    records: TrustZoneRecord[];
    filePaths: string[];
}
declare function resolveTrustZoneStoreDir(memoryDir: string, overrideDir?: string): string;
declare function validateTrustZoneRecord(raw: unknown): TrustZoneRecord;
declare function recordTrustZoneRecord(options: {
    memoryDir: string;
    trustZoneStoreDir?: string;
    record: TrustZoneRecord;
}): Promise<string>;
declare function scoreTrustZoneProvenance(record: TrustZoneRecord): TrustZoneProvenanceScore;
declare function planTrustZonePromotion(options: {
    record: TrustZoneRecord;
    targetZone: TrustZoneName;
}): TrustZonePromotionPlan;
declare function promoteTrustZoneRecord(options: {
    memoryDir: string;
    trustZoneStoreDir?: string;
    enabled: boolean;
    promotionEnabled: boolean;
    poisoningDefenseEnabled?: boolean;
    sourceRecordId: string;
    targetZone: TrustZoneName;
    recordedAt: string;
    promotionReason: string;
    summary?: string;
    dryRun?: boolean;
}): Promise<TrustZonePromotionResult>;
declare function searchTrustZoneRecords(options: {
    memoryDir: string;
    trustZoneStoreDir?: string;
    query: string;
    maxResults: number;
    sessionKey?: string;
}): Promise<TrustZoneSearchResult[]>;
declare function listTrustZoneRecords(options: {
    memoryDir: string;
    trustZoneStoreDir?: string;
    query?: string;
    zone?: TrustZoneName;
    kind?: TrustZoneRecordKind;
    sourceClass?: TrustZoneSourceClass;
    limit?: number;
    offset?: number;
}): Promise<TrustZoneListResult>;
declare function summarizeTrustZonePromotionReadiness(options: {
    record: TrustZoneRecord;
    allRecords: TrustZoneRecord[];
    poisoningDefenseEnabled: boolean;
}): TrustZonePromotionReadiness;
declare function seedTrustZoneDemoDataset(options: {
    memoryDir: string;
    trustZoneStoreDir?: string;
    enabled: boolean;
    scenario?: string;
    recordedAt?: string;
    dryRun?: boolean;
}): Promise<TrustZoneDemoSeedResult>;
declare function getTrustZoneStoreStatus(options: {
    memoryDir: string;
    trustZoneStoreDir?: string;
    enabled: boolean;
    promotionEnabled: boolean;
    poisoningDefenseEnabled: boolean;
}): Promise<TrustZoneStoreStatus>;

export { type TrustZoneDemoSeedResult, type TrustZoneListResult, type TrustZoneName, type TrustZonePromotionPlan, type TrustZonePromotionReadiness, type TrustZonePromotionResult, type TrustZoneProvenance, type TrustZoneProvenanceScore, type TrustZoneRecord, type TrustZoneRecordEntry, type TrustZoneRecordKind, type TrustZoneScoreBand, type TrustZoneSearchResult, type TrustZoneSourceClass, type TrustZoneStoreStatus, getTrustZoneStoreStatus, isTrustZoneName, listTrustZoneRecords, planTrustZonePromotion, promoteTrustZoneRecord, recordTrustZoneRecord, resolveTrustZoneStoreDir, scoreTrustZoneProvenance, searchTrustZoneRecords, seedTrustZoneDemoDataset, summarizeTrustZonePromotionReadiness, validateTrustZoneRecord };
