import type { ChatStorage } from "./chat-storage.js"; import type { ChatExportRecord } from "./types/chat.js"; export type ChatComplianceSelection = { kind: "thread"; tenantId: string; workspaceId: string; threadId: string; } | { kind: "task"; tenantId: string; workspaceId: string; taskId: string; } | { kind: "run"; tenantId: string; workspaceId: string; taskId: string; runId: string; }; export interface ChatComplianceActor { actorId: string; role: string; } export interface ChatComplianceExportResult { selection: ChatComplianceSelection; exportedAt: string; records: ChatExportRecord[]; markdown: string; auditEventId: string; } export interface ChatComplianceDeleteResult { selection: ChatComplianceSelection; deletedThreads: string[]; deletedMessages: string[]; auditEventId: string; } export interface ChatComplianceServiceOptions { workspaceRoot: string; storage?: ChatStorage; now?: () => string; } export declare class ChatComplianceService { private readonly workspaceRoot; private readonly storage; private readonly files; private readonly now; constructor(options: ChatComplianceServiceOptions); exportEvidence(input: { selection: ChatComplianceSelection; actor: ChatComplianceActor; includeTombstoned?: boolean; }): Promise; deleteScope(input: { selection: ChatComplianceSelection; actor: ChatComplianceActor; reasonCode: string; }): Promise; private resolveSelection; } export declare function auditArtifactFileName(prefix: "export" | "delete"): string;