import type { Session, SessionEvent } from '@deepseek-ai/dsh-session'; export declare const APPROVAL_REVIEWERS: readonly ["user", "auto-review", "none"]; export type ApprovalReviewer = typeof APPROVAL_REVIEWERS[number]; type ApprovalPolicy = 'ask' | 'never'; type SandboxMode = 'workspace-write' | 'danger-full-access'; export interface ApprovalPermissionState { approvalPolicy?: ApprovalPolicy; approvalPolicyEvent: boolean; reviewer?: ApprovalReviewer; reviewerEvent: boolean; sandboxMode?: SandboxMode; sandboxModeEvent: boolean; } declare module '@deepseek-ai/dsh-session/types' { interface SessionEventMap { /** Durable reviewer selection; log-only and never projected into model history. */ 'assistant-policy/approval-reviewer': { reviewer: ApprovalReviewer; }; } } /** Fold the three durable permission dimensions without inventing missing values. */ export declare function approvalPermissionStateOf(events: readonly SessionEvent[]): ApprovalPermissionState; /** Stable exact-state fingerprint used to close asynchronous reviewer races. */ export declare function approvalPermissionFingerprint(events: readonly SessionEvent[]): string; export declare function hasCoherentFullAccess(events: readonly SessionEvent[]): boolean; export declare function hasCoherentAutoReview(events: readonly SessionEvent[], sessionFormat?: number): boolean; /** Return the last valid reviewer event, without applying approval-policy compatibility. */ export declare function foldApprovalReviewer(events: readonly SessionEvent[]): ApprovalReviewer | undefined; /** * Resolve a reviewer conservatively against the standard approval policy. * Inconsistent intermediate event order never widens authority. */ export declare function approvalReviewerOf(events: readonly SessionEvent[], sessionFormat?: number): ApprovalReviewer; export declare function getApprovalReviewer(session: Pick): ApprovalReviewer; /** Append a validated reviewer transition only when it changes the durable selection. */ export declare function setApprovalReviewer(session: Session, reviewer: ApprovalReviewer): boolean; export {}; //# sourceMappingURL=approval-reviewer.d.ts.map