import { type RemoteWorkspaceContext } from "./remote-workspace-selection.js"; import { type RecurringAction, type RecurringInputs, type RecurringResults } from "./remote-recurring.js"; type Env = Record; export declare class RecurringCustomerError extends Error { readonly code: string; constructor(code: string, message: string); } export interface RecurringCustomer { readonly apiOrigin: string; readonly profile: string | null; readonly context: RemoteWorkspaceContext | undefined; /** Present only after actual fresh session and selected-workspace verification. */ readonly organizationId: string | undefined; assertCurrent(): Promise; call(action: A, input: RecurringInputs[A]): Promise; requestCode(email: string): Promise; fresh(email: string, code: string): Promise; } /** Capture before prompting. Fresh authority comes only from the existing OTP and * workspace session verifier; a profile/context never grants that authority. */ export declare function prepareRecurringCustomer(requested?: RemoteWorkspaceContext, source?: Env): Promise; /** Never echo authentication/transport bodies or caller-supplied credentials. */ export declare function recurringCustomerError(error: unknown): { status?: number | undefined; code: string; error: string; outcomeUnknown: boolean; }; export {};