import type { StorefrontCaseAttachment, StorefrontCaseKind, StorefrontCaseResolution, StorefrontCaseStatus } from "../core/aftercare"; import type { PaymentDispute } from "../core/payment"; import type { CommerceDb } from "./queries"; import { commerceStorefrontCaseEvents, commerceStorefrontCaseMessages, commerceStorefrontCases, commerceStorefrontOrders } from "./index"; export type StorefrontCase = typeof commerceStorefrontCases.$inferSelect; export type StorefrontCaseMessage = typeof commerceStorefrontCaseMessages.$inferSelect; export type StorefrontCaseEvent = typeof commerceStorefrontCaseEvents.$inferSelect; export declare class StorefrontAftercareError extends Error { readonly code: "aftercare_disabled" | "attachment_not_clean" | "attachment_not_found" | "attachments_disabled" | "case_access_denied" | "case_closed" | "case_conflict" | "case_identity_conflict" | "case_not_found" | "case_transition_invalid" | "customer_case_kind_invalid" | "evidence_disabled" | "evidence_identity_conflict" | "evidence_not_found" | "evidence_reconciliation_required" | "evidence_not_retryable" | "evidence_not_supported" | "deadline_policy_invalid" | "escalation_conflict" | "escalation_disabled" | "escalation_not_found" | "order_access_denied" | "order_not_found"; constructor(code: "aftercare_disabled" | "attachment_not_clean" | "attachment_not_found" | "attachments_disabled" | "case_access_denied" | "case_closed" | "case_conflict" | "case_identity_conflict" | "case_not_found" | "case_transition_invalid" | "customer_case_kind_invalid" | "evidence_disabled" | "evidence_identity_conflict" | "evidence_not_found" | "evidence_reconciliation_required" | "evidence_not_retryable" | "evidence_not_supported" | "deadline_policy_invalid" | "escalation_conflict" | "escalation_disabled" | "escalation_not_found" | "order_access_denied" | "order_not_found"); } export declare const emitStorefrontCaseEvent: (db: CommerceDb, input: { caseId: string; eventKey: string; kind: string; orderId: string; ownerKey: string; payload?: Record; }) => Omit>, { name: string; tableName: "commerce_storefront_case_events"; dataType: "number int32"; data: number; driverParam: string | number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; case_id: import("drizzle-orm/pg-core").PgBuildColumn<"commerce_storefront_case_events", import("drizzle-orm/pg-core").SetNotNull, { name: string; tableName: "commerce_storefront_case_events"; dataType: "string uuid"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; created_at: import("drizzle-orm/pg-core").PgBuildColumn<"commerce_storefront_case_events", import("drizzle-orm/pg-core").SetHasDefault>, { name: string; tableName: "commerce_storefront_case_events"; dataType: "object date"; data: Date; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; event_key: import("drizzle-orm/pg-core").PgBuildColumn<"commerce_storefront_case_events", import("drizzle-orm/pg-core").SetNotNull>, { name: string; tableName: "commerce_storefront_case_events"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; id: import("drizzle-orm/pg-core").PgBuildColumn<"commerce_storefront_case_events", import("drizzle-orm/pg-core").SetIsPrimaryKey>, { name: string; tableName: "commerce_storefront_case_events"; dataType: "string uuid"; data: string; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; kind: import("drizzle-orm/pg-core").PgBuildColumn<"commerce_storefront_case_events", import("drizzle-orm/pg-core").SetNotNull>, { name: string; tableName: "commerce_storefront_case_events"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; last_error: import("drizzle-orm/pg-core").PgBuildColumn<"commerce_storefront_case_events", import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>, { name: string; tableName: "commerce_storefront_case_events"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; lease_expires_at: import("drizzle-orm/pg-core").PgBuildColumn<"commerce_storefront_case_events", import("drizzle-orm/pg-core").PgTimestampBuilder, { name: string; tableName: "commerce_storefront_case_events"; dataType: "object date"; data: Date; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; next_attempt_at: import("drizzle-orm/pg-core").PgBuildColumn<"commerce_storefront_case_events", import("drizzle-orm/pg-core").PgTimestampBuilder, { name: string; tableName: "commerce_storefront_case_events"; dataType: "object date"; data: Date; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; notified_at: import("drizzle-orm/pg-core").PgBuildColumn<"commerce_storefront_case_events", import("drizzle-orm/pg-core").PgTimestampBuilder, { name: string; tableName: "commerce_storefront_case_events"; dataType: "object date"; data: Date; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; order_id: import("drizzle-orm/pg-core").PgBuildColumn<"commerce_storefront_case_events", import("drizzle-orm/pg-core").SetNotNull, { name: string; tableName: "commerce_storefront_case_events"; dataType: "string uuid"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; owner_key: import("drizzle-orm/pg-core").PgBuildColumn<"commerce_storefront_case_events", import("drizzle-orm/pg-core").SetNotNull>, { name: string; tableName: "commerce_storefront_case_events"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; payload: import("drizzle-orm/pg-core").PgBuildColumn<"commerce_storefront_case_events", import("drizzle-orm/pg-core").SetHasDefault, Record>>>, { name: string; tableName: "commerce_storefront_case_events"; dataType: "custom"; data: Record; driverParam: unknown; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; status: import("drizzle-orm/pg-core").PgBuildColumn<"commerce_storefront_case_events", import("drizzle-orm/pg-core").SetHasDefault>>, { name: string; tableName: "commerce_storefront_case_events"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; updated_at: import("drizzle-orm/pg-core").PgBuildColumn<"commerce_storefront_case_events", import("drizzle-orm/pg-core").SetHasDefault>, { name: string; tableName: "commerce_storefront_case_events"; dataType: "object date"; data: Date; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; worker_id: import("drizzle-orm/pg-core").PgBuildColumn<"commerce_storefront_case_events", import("drizzle-orm/pg-core").PgVarcharBuilder<[string, ...string[]]>, { name: string; tableName: "commerce_storefront_case_events"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; }; dialect: "pg"; }> & { attempts: import("drizzle-orm/pg-core").PgBuildColumn<"commerce_storefront_case_events", import("drizzle-orm/pg-core").SetHasDefault>, { name: string; tableName: "commerce_storefront_case_events"; dataType: "number int32"; data: number; driverParam: string | number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; case_id: import("drizzle-orm/pg-core").PgBuildColumn<"commerce_storefront_case_events", import("drizzle-orm/pg-core").SetNotNull, { name: string; tableName: "commerce_storefront_case_events"; dataType: "string uuid"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; created_at: import("drizzle-orm/pg-core").PgBuildColumn<"commerce_storefront_case_events", import("drizzle-orm/pg-core").SetHasDefault>, { name: string; tableName: "commerce_storefront_case_events"; dataType: "object date"; data: Date; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; event_key: import("drizzle-orm/pg-core").PgBuildColumn<"commerce_storefront_case_events", import("drizzle-orm/pg-core").SetNotNull>, { name: string; tableName: "commerce_storefront_case_events"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; id: import("drizzle-orm/pg-core").PgBuildColumn<"commerce_storefront_case_events", import("drizzle-orm/pg-core").SetIsPrimaryKey>, { name: string; tableName: "commerce_storefront_case_events"; dataType: "string uuid"; data: string; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; kind: import("drizzle-orm/pg-core").PgBuildColumn<"commerce_storefront_case_events", import("drizzle-orm/pg-core").SetNotNull>, { name: string; tableName: "commerce_storefront_case_events"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; last_error: import("drizzle-orm/pg-core").PgBuildColumn<"commerce_storefront_case_events", import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>, { name: string; tableName: "commerce_storefront_case_events"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; lease_expires_at: import("drizzle-orm/pg-core").PgBuildColumn<"commerce_storefront_case_events", import("drizzle-orm/pg-core").PgTimestampBuilder, { name: string; tableName: "commerce_storefront_case_events"; dataType: "object date"; data: Date; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; next_attempt_at: import("drizzle-orm/pg-core").PgBuildColumn<"commerce_storefront_case_events", import("drizzle-orm/pg-core").PgTimestampBuilder, { name: string; tableName: "commerce_storefront_case_events"; dataType: "object date"; data: Date; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; notified_at: import("drizzle-orm/pg-core").PgBuildColumn<"commerce_storefront_case_events", import("drizzle-orm/pg-core").PgTimestampBuilder, { name: string; tableName: "commerce_storefront_case_events"; dataType: "object date"; data: Date; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; order_id: import("drizzle-orm/pg-core").PgBuildColumn<"commerce_storefront_case_events", import("drizzle-orm/pg-core").SetNotNull, { name: string; tableName: "commerce_storefront_case_events"; dataType: "string uuid"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; owner_key: import("drizzle-orm/pg-core").PgBuildColumn<"commerce_storefront_case_events", import("drizzle-orm/pg-core").SetNotNull>, { name: string; tableName: "commerce_storefront_case_events"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; payload: import("drizzle-orm/pg-core").PgBuildColumn<"commerce_storefront_case_events", import("drizzle-orm/pg-core").SetHasDefault, Record>>>, { name: string; tableName: "commerce_storefront_case_events"; dataType: "custom"; data: Record; driverParam: unknown; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; status: import("drizzle-orm/pg-core").PgBuildColumn<"commerce_storefront_case_events", import("drizzle-orm/pg-core").SetHasDefault>>, { name: string; tableName: "commerce_storefront_case_events"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; updated_at: import("drizzle-orm/pg-core").PgBuildColumn<"commerce_storefront_case_events", import("drizzle-orm/pg-core").SetHasDefault>, { name: string; tableName: "commerce_storefront_case_events"; dataType: "object date"; data: Date; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; worker_id: import("drizzle-orm/pg-core").PgBuildColumn<"commerce_storefront_case_events", import("drizzle-orm/pg-core").PgVarcharBuilder<[string, ...string[]]>, { name: string; tableName: "commerce_storefront_case_events"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; } & { readonly $inferSelect: { id: string; created_at: Date; status: string; kind: string; owner_key: string; updated_at: Date; last_error: string | null; attempts: number; case_id: string; lease_expires_at: Date | null; next_attempt_at: Date | null; order_id: string; worker_id: string | null; notified_at: Date | null; payload: Record; event_key: string; }; readonly $inferInsert: { kind: string; owner_key: string; case_id: string; order_id: string; event_key: string; id?: string | undefined; created_at?: Date | undefined; status?: string | undefined; updated_at?: Date | undefined; last_error?: string | null | undefined; attempts?: number | undefined; lease_expires_at?: Date | null | undefined; next_attempt_at?: Date | null | undefined; worker_id?: string | null | undefined; notified_at?: Date | null | undefined; payload?: Record | undefined; }; } & { enableRLS: () => Omit>, { name: string; tableName: "commerce_storefront_case_events"; dataType: "number int32"; data: number; driverParam: string | number; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; case_id: import("drizzle-orm/pg-core").PgBuildColumn<"commerce_storefront_case_events", import("drizzle-orm/pg-core").SetNotNull, { name: string; tableName: "commerce_storefront_case_events"; dataType: "string uuid"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; created_at: import("drizzle-orm/pg-core").PgBuildColumn<"commerce_storefront_case_events", import("drizzle-orm/pg-core").SetHasDefault>, { name: string; tableName: "commerce_storefront_case_events"; dataType: "object date"; data: Date; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; event_key: import("drizzle-orm/pg-core").PgBuildColumn<"commerce_storefront_case_events", import("drizzle-orm/pg-core").SetNotNull>, { name: string; tableName: "commerce_storefront_case_events"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; id: import("drizzle-orm/pg-core").PgBuildColumn<"commerce_storefront_case_events", import("drizzle-orm/pg-core").SetIsPrimaryKey>, { name: string; tableName: "commerce_storefront_case_events"; dataType: "string uuid"; data: string; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; kind: import("drizzle-orm/pg-core").PgBuildColumn<"commerce_storefront_case_events", import("drizzle-orm/pg-core").SetNotNull>, { name: string; tableName: "commerce_storefront_case_events"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; last_error: import("drizzle-orm/pg-core").PgBuildColumn<"commerce_storefront_case_events", import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>, { name: string; tableName: "commerce_storefront_case_events"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; lease_expires_at: import("drizzle-orm/pg-core").PgBuildColumn<"commerce_storefront_case_events", import("drizzle-orm/pg-core").PgTimestampBuilder, { name: string; tableName: "commerce_storefront_case_events"; dataType: "object date"; data: Date; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; next_attempt_at: import("drizzle-orm/pg-core").PgBuildColumn<"commerce_storefront_case_events", import("drizzle-orm/pg-core").PgTimestampBuilder, { name: string; tableName: "commerce_storefront_case_events"; dataType: "object date"; data: Date; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; notified_at: import("drizzle-orm/pg-core").PgBuildColumn<"commerce_storefront_case_events", import("drizzle-orm/pg-core").PgTimestampBuilder, { name: string; tableName: "commerce_storefront_case_events"; dataType: "object date"; data: Date; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; order_id: import("drizzle-orm/pg-core").PgBuildColumn<"commerce_storefront_case_events", import("drizzle-orm/pg-core").SetNotNull, { name: string; tableName: "commerce_storefront_case_events"; dataType: "string uuid"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; owner_key: import("drizzle-orm/pg-core").PgBuildColumn<"commerce_storefront_case_events", import("drizzle-orm/pg-core").SetNotNull>, { name: string; tableName: "commerce_storefront_case_events"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; payload: import("drizzle-orm/pg-core").PgBuildColumn<"commerce_storefront_case_events", import("drizzle-orm/pg-core").SetHasDefault, Record>>>, { name: string; tableName: "commerce_storefront_case_events"; dataType: "custom"; data: Record; driverParam: unknown; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; status: import("drizzle-orm/pg-core").PgBuildColumn<"commerce_storefront_case_events", import("drizzle-orm/pg-core").SetHasDefault>>, { name: string; tableName: "commerce_storefront_case_events"; dataType: "string"; data: string; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; updated_at: import("drizzle-orm/pg-core").PgBuildColumn<"commerce_storefront_case_events", import("drizzle-orm/pg-core").SetHasDefault>, { name: string; tableName: "commerce_storefront_case_events"; dataType: "object date"; data: Date; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; worker_id: import("drizzle-orm/pg-core").PgBuildColumn<"commerce_storefront_case_events", import("drizzle-orm/pg-core").PgVarcharBuilder<[string, ...string[]]>, { name: string; tableName: "commerce_storefront_case_events"; dataType: "string"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; identity: undefined; generated: undefined; }>; }; dialect: "pg"; }>, "enableRLS">; }, any, undefined, undefined, false, "onConflictDoNothing" | "onConflictDoUpdate">, "onConflictDoNothing" | "onConflictDoUpdate">; export declare const createStorefrontAftercareService: (options: { db: CommerceDb; enabled?: boolean; leaseMs?: number; notificationsEnabled?: boolean; notify: (input: { case: StorefrontCase; event: StorefrontCaseEvent; idempotencyKey: string; order: typeof commerceStorefrontOrders.$inferSelect; }) => Promise; now?: () => Date; retryMs?: number; }) => { addCustomerMessage: (input: { accessToken: string; attachments?: StorefrontCaseAttachment[]; body: string; caseId: string; checkoutIntentId: string; idempotencyKey: string; ownerKey: string; }) => Promise<{ id: string; body: string; created_at: Date; case_id: string; idempotency_key: string; attachments: StorefrontCaseAttachment[]; author_kind: string; internal: boolean; }>; addOperatorMessage: (input: { attachments?: StorefrontCaseAttachment[]; authorKind: "admin" | "owner"; authorRef: string; body: string; caseId: string; idempotencyKey: string; internal?: boolean; ownerKey: string; }) => Promise<{ id: string; body: string; created_at: Date; owner_key: string; case_id: string; idempotency_key: string; attachments: StorefrontCaseAttachment[]; author_kind: string; author_ref: string; internal: boolean; }>; getOwnerCase: (ownerKey: string, caseId: string) => Promise<{ assigned_to: string | null; closed_at: Date | null; created_at: Date; due_at: Date | null; id: string; idempotency_key: string; kind: string; order_id: string; owner_key: string; priority: string; provider_case_id: string | null; provider_status: string | null; reason: string; requested_by: string; resolution: StorefrontCaseResolution | null; status: string; subject: string; updated_at: Date; }>; listCustomer: (ownerKey: string, access: { accessToken: string; checkoutIntentId: string; }) => Promise<{ cases: { id: string; created_at: Date; status: string; kind: string; reason: string; updated_at: Date; order_id: string; closed_at: Date | null; due_at: Date | null; priority: string; provider_status: string | null; resolution: StorefrontCaseResolution | null; subject: string; }[]; messages: { id: string; body: string; created_at: Date; case_id: string; idempotency_key: string; attachments: StorefrontCaseAttachment[]; author_kind: string; internal: boolean; }[]; orderId: string; }>; listFleet: () => Promise<{ cases: { assigned_to: string | null; closed_at: Date | null; created_at: Date; due_at: Date | null; id: string; idempotency_key: string; kind: string; order_id: string; owner_key: string; priority: string; provider_case_id: string | null; provider_status: string | null; reason: string; requested_by: string; resolution: StorefrontCaseResolution | null; status: string; subject: string; updated_at: Date; }[]; events: { attempts: number; case_id: string; created_at: Date; event_key: string; id: string; kind: string; last_error: string | null; lease_expires_at: Date | null; next_attempt_at: Date | null; notified_at: Date | null; order_id: string; owner_key: string; payload: Record; status: string; updated_at: Date; worker_id: string | null; }[]; messages: { attachments: StorefrontCaseAttachment[]; author_kind: string; author_ref: string; body: string; case_id: string; created_at: Date; id: string; idempotency_key: string; internal: boolean; owner_key: string; }[]; }>; listOwner: (ownerKey: string) => Promise<{ cases: { assigned_to: string | null; closed_at: Date | null; created_at: Date; due_at: Date | null; id: string; idempotency_key: string; kind: string; order_id: string; owner_key: string; priority: string; provider_case_id: string | null; provider_status: string | null; reason: string; requested_by: string; resolution: StorefrontCaseResolution | null; status: string; subject: string; updated_at: Date; }[]; events: { attempts: number; case_id: string; created_at: Date; event_key: string; id: string; kind: string; last_error: string | null; lease_expires_at: Date | null; next_attempt_at: Date | null; notified_at: Date | null; order_id: string; owner_key: string; payload: Record; status: string; updated_at: Date; worker_id: string | null; }[]; messages: { attachments: StorefrontCaseAttachment[]; author_kind: string; author_ref: string; body: string; case_id: string; created_at: Date; id: string; idempotency_key: string; internal: boolean; owner_key: string; }[]; }>; openCustomerCase: (input: { accessToken: string; attachments?: StorefrontCaseAttachment[]; checkoutIntentId: string; idempotencyKey: string; kind: Exclude; ownerKey: string; reason: string; subject: string; }) => Promise<{ id: string; created_at: Date; status: string; kind: string; reason: string; updated_at: Date; order_id: string; closed_at: Date | null; due_at: Date | null; priority: string; provider_status: string | null; resolution: StorefrontCaseResolution | null; subject: string; }>; runNotificationCycle: (workerId: string, limit?: number) => Promise<{ eventId: string; status: string; }[]>; transition: (input: { assignedTo?: string | null; caseId: string; expectedUpdatedAt: Date; idempotencyKey: string; ownerKey: string; resolution?: StorefrontCaseResolution | null; status: StorefrontCaseStatus; }) => Promise<{ assigned_to: string | null; closed_at: Date | null; created_at: Date; due_at: Date | null; id: string; idempotency_key: string; kind: string; order_id: string; owner_key: string; priority: string; provider_case_id: string | null; provider_status: string | null; reason: string; requested_by: string; resolution: StorefrontCaseResolution | null; status: string; subject: string; updated_at: Date; }>; }; export declare const recordStorefrontDispute: (db: CommerceDb, input: { dispute: PaymentDispute; eventId: string; orderId: string; ownerKey: string; }) => Promise<{ id: string; created_at: Date; status: string; kind: string; reason: string; owner_key: string; updated_at: Date; idempotency_key: string; order_id: string; requested_by: string; assigned_to: string | null; closed_at: Date | null; due_at: Date | null; priority: string; provider_case_id: string | null; provider_status: string | null; resolution: StorefrontCaseResolution | null; subject: string; }>;