export type OwnerTaskPhase = 'progress' | 'done' | 'blocked'; export type OwnerTaskTerminalState = 'closed' | 'expired' | 'revoked'; export interface OwnerTaskRoute { requestId: string; contact: string; wireId: string; } interface PendingReport { digest: string; phase: OwnerTaskPhase; chars: number; bytes: number; } export interface OwnerTaskRecord extends OwnerTaskRoute { id: string; createdAt: number; expiresAt: number; status: 'open' | 'sending' | 'uncertain'; sequence: number; reportCount: number; lastReportAt?: number; digests: string[]; pending?: PendingReport; } export declare const OWNER_TASK_TTL_MS: number; export declare const OWNER_TASK_MAX_OPEN = 32; export declare const OWNER_TASK_MAX_PER_OWNER = 8; export declare const OWNER_TASK_MAX_REPORTS = 20; export declare const OWNER_TASK_REPORT_MIN_INTERVAL_MS = 5000; /** * Durable proactive-task routing. It deliberately stores no report body: only * the authenticated route, bounded hashes/counters, and delivery state. */ export declare class OwnerTaskState { private readonly path; private tasks; private tombstones; private corruptReason?; constructor(path: string); integrity(): { ok: boolean; error?: string; }; open(route: OwnerTaskRoute, now?: number): OwnerTaskRecord; route(taskId: string, now?: number): OwnerTaskRecord; beginReport(taskId: string, phase: OwnerTaskPhase, digest: string, chars: number, bytes: number, now?: number): OwnerTaskRecord; delivered(taskId: string, digest: string, terminal: boolean, now?: number): number; uncertain(taskId: string, digest: string): void; revoke(contact: string, now?: number): number; cleanup(now?: number, effectiveOwners?: Set): number; private findOpen; private remove; private mutate; private persist; private assertHealthy; private validTask; private validPending; private validTombstone; } export declare const ownerTaskDigest: (phase: OwnerTaskPhase, message: string) => string; export declare const ownerTaskAuditId: (value: string) => string; export {};