import { z } from "zod/v4"; import { type RecurringActivation, type RecurringPreview, type RecurringConsentView } from "./remote-recurring.js"; import { type RecurringCustomer } from "./recurring-customer.js"; declare const intentSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ contractVersion: z.ZodLiteral<1>; apiOrigin: z.ZodString; profile: z.ZodNullable; organizationId: z.ZodString; userId: z.ZodString; membershipId: z.ZodString; operation: z.ZodLiteral<"activate">; draftId: z.ZodString; termsSha256: z.ZodString; approvalDeadline: z.ZodString; approval: z.ZodObject<{ contractVersion: z.ZodLiteral<1>; acceptedTermsSha256: z.ZodString; acceptance: z.ZodLiteral<"authorize-recurring-credit-use">; idempotencyKey: z.ZodString; }, z.core.$strict>; }, z.core.$strict>, z.ZodObject<{ contractVersion: z.ZodLiteral<1>; apiOrigin: z.ZodString; profile: z.ZodNullable; organizationId: z.ZodString; userId: z.ZodString; membershipId: z.ZodString; operation: z.ZodLiteral<"revoke">; consentId: z.ZodString; }, z.core.$strict>], "operation">; type Intent = z.infer; /** Refuse a substituted target before displaying saved terms or requesting OTP. * The recovery executor repeats this fence while holding the original record. */ export declare function bindRecurringRecovery(customer: RecurringCustomer, intent: Intent): void; export declare function prepareRecurringActivation(customer: RecurringCustomer, directory: string, draftId: string, approval: RecurringActivation): Promise; export declare function prepareRecurringRevocation(customer: RecurringCustomer, directory: string, consentId: string): Promise; export declare function readRecurringRecovery(directory: string): { intent: { contractVersion: 1; apiOrigin: string; profile: string | null; organizationId: string; userId: string; membershipId: string; operation: "activate"; draftId: string; termsSha256: string; approvalDeadline: string; approval: { contractVersion: 1; acceptedTermsSha256: string; acceptance: "authorize-recurring-credit-use"; idempotencyKey: string; }; } | { contractVersion: 1; apiOrigin: string; profile: string | null; organizationId: string; userId: string; membershipId: string; operation: "revoke"; consentId: string; }; phase: "prepared" | "pending" | "observed"; consentId: string | null; }; export interface RecurringRecoveryOptions { confirm: boolean; email?: string; code?: string; } /** One explicit action, never an internal POST retry. Pending remains uncertain * even when later verification, local persistence or custody checks fail. */ export declare function continueRecurringRecovery(customer: RecurringCustomer, directory: string, options: RecurringRecoveryOptions): Promise<{ recoveryDirectory: string; operation: "activate" | "revoke"; outcomeUnknown: boolean; phase: "prepared" | "pending" | "observed"; result: unknown; }>; export {};