import type { ApprovalInsert, ApprovalUpdate } from '../approval.schema'; import type { AuditInsert } from '../audit.schema'; import type { GrantInsert } from '../grant.schema'; import type { InboxNotificationInsert } from '../inbox-notification.schema'; import type { ToolCallEvent, InboxApprovalEvent, SessionStateEvent } from './sidecar-events'; export type ChatSessionProjection = { chat: string; sessionStatus: 'active' | 'paused' | 'completed' | 'error'; policy?: string; policyVersion?: string; }; export type ApprovalProjectionInsert = Pick; export type ApprovalProjectionUpdate = Partial>; export type AuditProjectionInsert = Pick; export type GrantProjectionInsert = Pick; export type InboxNotificationProjectionInsert = Pick; export declare const SidecarEventToPodMapping: { readonly tool_call_waiting_approval: { readonly approval: "insert"; readonly inboxNotification: "insert"; readonly audit: null; readonly grant: null; }; readonly tool_call_approved_or_rejected: { readonly approval: "update"; readonly inboxNotification: "insert"; readonly audit: "insert"; readonly grant: null; }; readonly inbox_approval_resolved: { readonly approval: "update"; readonly inboxNotification: "insert"; readonly audit: null; readonly grant: null; }; readonly session_state_terminal: { readonly chat: "update"; }; }; export declare function hasPodScope(scope: { target?: string; action?: string; }): scope is { target: string; action: string; }; export type SidecarPersistenceRuleKey = keyof typeof SidecarEventToPodMapping; export declare function isToolWaitingApproval(event: ToolCallEvent): boolean; export declare function isToolDecisionEvent(event: ToolCallEvent): boolean; export declare function isInboxResolved(event: InboxApprovalEvent): boolean; export declare function isSessionTerminal(event: SessionStateEvent): boolean;