import type { DbExec } from "../db/client.js"; import type { ComputerApprovalScope, ComputerCommandEnvelope, ComputerOperationClass } from "./remote-types.js"; export type ComputerApprovalStatus = "pending" | "approved" | "denied" | "consumed" | "expired"; export interface ComputerApprovalRecord { id: string; ownerEmail: string; orgId: string | null; deviceId: string; taskId: string; runId: string; operationClass: ComputerOperationClass; scope: ComputerApprovalScope; actionHash: string; status: ComputerApprovalStatus; decisionResult: Record | null; decidedBy: string | null; decidedAt: number | null; expiresAt: number; consumedAt: number | null; createdAt: number; updatedAt: number; } export declare function ensureComputerApprovalStore(): Promise; export declare function createComputerApprovalRequest(input: { ownerEmail: string; orgId?: string | null; deviceId: string; envelope: ComputerCommandEnvelope; }): Promise; export declare function decideComputerApproval(input: { id: string; ownerEmail: string; orgId?: string | null; actionHash: string; decision: "approved" | "denied"; decidedBy: string; result?: Record | null; }): Promise; export declare function getComputerApprovalForOwner(input: { id: string; ownerEmail: string; orgId?: string | null; }): Promise; export declare function listComputerApprovalsForOwner(input: { ownerEmail: string; orgId?: string | null; deviceId?: string; taskId?: string; runId?: string; status?: ComputerApprovalStatus; limit?: number; }): Promise; /** * Authorizes an operation immediately before it is enqueued. Callers should * pass their transaction handle so one-shot approval consumption and command * insertion commit atomically. */ export declare function authorizeComputerOperation(input: { ownerEmail: string; orgId?: string | null; deviceId: string; envelope: ComputerCommandEnvelope; now?: number; }, client?: DbExec): Promise; //# sourceMappingURL=computer-supervision-store.d.ts.map