export declare const policyDecisionOutcomes: readonly ["allow", "deny", "requiresApproval", "quarantine"]; export type PolicyDecisionOutcome = (typeof policyDecisionOutcomes)[number]; export type PolicyAction = "content.ingest" | "evidence.write" | "pythonWorker.process" | "provider.message" | "url.fetch" | "file.write" | "command.execute"; export type PolicySink = "evidence" | "htmlText" | "json" | "log" | "markdown" | "provider" | "shellArgument" | "url"; export type SegmentKind = "data" | "evidence" | "instruction" | "providerResponse" | "toolInput" | "toolOutput" | "unknown"; export type DataClassification = "public" | "internal" | "restricted" | "unknown"; export type FindingSeverity = "low" | "medium" | "high" | "critical"; export type ContentFindingKind = "indirectPromptInjection" | "noSqlLike" | "pathTraversal" | "piiEmail" | "piiPaymentCard" | "piiPhone" | "piiSsn" | "promptInjection" | "secretShaped" | "shellLike" | "sqlLike" | "unsafeUrl"; export interface ContentFinding { kind: ContentFindingKind; ruleId: string; severity: FindingSeverity; summary: string; } export interface ContentClassification { classification: DataClassification; findings: ContentFinding[]; } export interface PromptSegment { id: string; kind: SegmentKind; provenance: string; sink: PolicySink; text: string; byteLength: number; classification: ContentClassification; } export type RedactionStatus = "notRequired" | "redacted" | "quarantined" | "unsafeUnredacted"; export interface RedactedSegment { id: string; text: string; status: RedactionStatus; redactedFindings: ContentFindingKind[]; } export interface RedactionReport { status: RedactionStatus; redactedSegments: RedactedSegment[]; sanitizedReasons: string[]; } export interface PolicySubject { id: string; subjectType: "human" | "runtime" | "system" | "tool"; tenantId?: string; workspaceId?: string; } export interface PolicyResource { resourceType: "command" | "evidence" | "file" | "prompt" | "pythonWorker" | "url"; summary: string; tenantId?: string; workspaceId?: string; } export interface PolicyRequest { requestId: string; subject: PolicySubject; action: PolicyAction; resource: PolicyResource; sink: PolicySink; dataClassification: DataClassification; segments: PromptSegment[]; redactionReport: RedactionReport; } export interface PolicyRequestInput { requestId?: string; subject?: Partial; action?: PolicyAction; resource?: Partial; sink?: PolicySink; dataClassification?: DataClassification; segments?: PromptSegment[]; redactionReport?: RedactionReport; } export interface PolicyDecision { requestId: string; outcome: PolicyDecisionOutcome; matchedRuleIds: string[]; redactionStatus: RedactionStatus; sanitizedReasons: string[]; evidenceSummary: string; }