import { type IERPLaborTicketHandler, type RecoverLaborTicketIdResult, type RecoverLaborTicketIdReturn } from "../types/erp-connector.js"; import type { MMReceiveLaborTicket } from "../services/mm-api-service/types/receive-types.js"; import type { MMApiClient } from "../services/mm-api-service/mm-api-service.js"; /** * Thrown when a connector defers recovery and the SDK should skip ERP create for this cycle. * Polling records failure and enqueues retry; NATS returns an error response. */ export declare class LaborTicketRecoveryDeferredError extends Error { readonly code = "LABOR_RECOVERY_DEFERRED"; constructor(reason?: string); } /** * Thrown when ERP create failed overall but an ERP laborTicketId was assigned. * The SDK patches MM before rethrowing so retries use the update path. */ export declare class LaborTicketCreatePartialSuccessError extends Error { readonly code = "LABOR_CREATE_PARTIAL_SUCCESS"; readonly laborTicketId: string; readonly laborTicket?: MMReceiveLaborTicket; constructor(laborTicketId: string, message: string, options?: { laborTicket?: MMReceiveLaborTicket; cause?: unknown; }); } export declare function normalizeRecoverLaborTicketIdResult(result: RecoverLaborTicketIdReturn | undefined): RecoverLaborTicketIdResult; export declare function callRecoverLaborTicketId(connector: IERPLaborTicketHandler, laborTicket: MMReceiveLaborTicket): Promise; /** * Shared pre-create recovery orchestration for polling and NATS labor ticket paths. */ export declare class LaborTicketRecovery { /** * Invokes `recoverLaborTicketId` when implemented, immediately before ERP create. * * @returns Recovered ERP `laborTicketId`, or `null` to proceed with create. * @throws {LaborTicketRecoveryDeferredError} When the connector returns `DEFER`. */ static attemptBeforeCreate(connector: IERPLaborTicketHandler, laborTicket: MMReceiveLaborTicket): Promise; /** * On create failure, patch MM when the connector threw LaborTicketCreatePartialSuccessError. * No-op for any other error type. Never throws; callers rethrow the original create error. */ static patchMmOnCreateFailure(mmApiClient: MMApiClient, laborTicket: MMReceiveLaborTicket, error: unknown): Promise; } //# sourceMappingURL=labor-ticket-recovery.d.ts.map