import type { PromptPackMaterialDraft } from "../promptPack/promptDefiner.js";
export type ObservationTrustLevel = "runtimeFact" | "toolOutput" | "modelInterpretation" | "userProvided" | "externalSource" | "cachedSummary";
export type ToolResultSizePolicy = {
    maxInlineBytes: number;
    overflowMode: "artifactRef";
};
export type ObservationArtifactRef = {
    artifactId: string;
    uri: string;
    path?: string;
    byteLength: number;
    reason: "toolResultTooLarge" | "manualArtifact";
    metadata: Readonly<Record<string, unknown>>;
};
export type LargeObservationSelectionFlow = {
    kind: "largeObservationSelection";
    artifactRef: ObservationArtifactRef;
    modelInstruction: string;
    selectionBudgetBytes: number;
    publicSafe: true;
};
export type ObservationSummaryDelegationPolicy = {
    mode: "cmp" | "summaryAgent" | "disabled";
    summaryAgentRef?: string;
    allowCurrentAgentSelfSummary: boolean;
    compressionRatio?: number;
    metadata: Readonly<Record<string, unknown>>;
};
export type ObservationCompressionPolicy = {
    enabled: boolean;
    compressionRatio: number;
    primitive: "compressObservation";
    owner: "cmp" | "summaryAgent" | "runtimeFallback";
    metadata: Readonly<Record<string, unknown>>;
};
export type SummaryAgentRef = {
    agentRef: string;
    role: "observationSummary";
    compressionRatio: number;
    publicSafe: true;
};
export type FallbackMemoryRef = {
    memoryId: string;
    kind: "sessionLocalMarkdownIndex";
    storageHint: ".rax_workspace" | "memory";
    takeoverReadyForMp: boolean;
    publicSafe: true;
};
export type ObservationMaterial = RuntimeObservationMaterial;
export type RuntimeObservationInput = {
    observationId: string;
    source: "baseTool" | "ephemeralProcedure" | "runtime" | "model";
    status: "completed" | "failed" | "waitingApproval" | "interrupted";
    title: string;
    summary: string;
    refs?: readonly string[];
    payload?: unknown;
    trustLevel?: ObservationTrustLevel;
    sizePolicy?: Partial<ToolResultSizePolicy>;
    artifactUri?: string;
    artifactStore?: {
        workspaceRoot: string;
        sessionId: string;
    };
    summaryDelegation?: Partial<ObservationSummaryDelegationPolicy>;
    compression?: Partial<ObservationCompressionPolicy>;
    metadata?: Readonly<Record<string, string | number | boolean | object>>;
};
export type RuntimeObservationMaterial = {
    observationId: string;
    material: PromptPackMaterialDraft;
    refs: readonly string[];
    payload: unknown;
    trustLevel: ObservationTrustLevel;
    summaryDelegation: ObservationSummaryDelegationPolicy;
    compression: ObservationCompressionPolicy;
    artifactRef?: ObservationArtifactRef;
    selectionFlow?: LargeObservationSelectionFlow;
};
export declare const DEFAULT_TOOL_RESULT_SIZE_POLICY: ToolResultSizePolicy;
export declare const DEFAULT_OBSERVATION_TURN_INLINE_BUDGET_BYTES: number;
export declare const DEFAULT_OBSERVATION_SUMMARY_DELEGATION_POLICY: ObservationSummaryDelegationPolicy;
export declare const DEFAULT_OBSERVATION_COMPRESSION_POLICY: ObservationCompressionPolicy;
export declare const DEFAULT_SUMMARY_AGENT_REF: SummaryAgentRef;
export declare function createFallbackMemoryRef(sessionId: string, storageHint?: ".rax_workspace" | "memory"): FallbackMemoryRef;
export declare function createObservationMaterial(input: RuntimeObservationInput): RuntimeObservationMaterial;
