import { type CodexReleaseInteraction } from "./request-bound-device-v6-release.js"; import type { CodexServiceClient } from "./client.js"; import type { CodexV6DeviceBinding, CodexV6ReconcileDeviceAccessResponse } from "./protocol.js"; type V6Client = Pick; export interface CodexV6DeviceAccessResult { installationId: string; response: CodexV6ReconcileDeviceAccessResponse; } export interface CodexV6GenerationReportResult { reported: boolean; credentialChangeReported?: boolean; warningCode?: string; warningStage?: "REPORT_JOURNAL" | "ACTOR" | "ENROLLMENT_CONFIGURATION" | "LOCAL_OBSERVATION" | "GENERATION_REPORT"; warningStatus?: number; pendingCredentialChange?: boolean; } export declare function reconcileCodexV6DeviceAccess(input: { client: V6Client; tenantId: string; env?: NodeJS.ProcessEnv; deviceLabel?: string; now?: () => number; newId?: () => string; }): Promise; export declare function requireAvailableCodexV6DeviceAccess(result: CodexV6DeviceAccessResult): { request: NonNullable; binding: NonNullable; }; export declare function ensureCodexV6DeviceCredentials(input: { client: V6Client; tenantId: string; env?: NodeJS.ProcessEnv; deviceLabel?: string; now?: () => number; newId?: () => string; releaseInteraction?: CodexReleaseInteraction; releaseSupported?: boolean; target?: { request: NonNullable; binding: CodexV6DeviceBinding; }; }): Promise<{ credentialExpiresAt: string; binding: CodexV6DeviceBinding; replacementDeferredWarningCode?: string; }>; export declare function reportCodexV6DeviceCredentials(input: { client: V6Client; tenantId: string; env?: NodeJS.ProcessEnv; now?: () => number; newId?: () => string; forceFullReport?: boolean; knownHealth?: { accessTokenHealth: "HEALTHY" | "EXPIRED" | "REJECTED" | "UNKNOWN"; refreshTokenHealth: "HEALTHY" | "REJECTED" | "UNKNOWN"; }; releaseOperationId?: string; }): Promise; export {};