import { z } from 'zod';

declare const purchaseUserTransferSchema: z.ZodObject<{
    id: z.ZodString;
    transferState: z.ZodDefault<z.ZodEnum<["AVAILABLE", "INITIATED", "VERIFIED", "CANCELED", "EXPIRED", "CONFIRMED", "COMPLETED"]>>;
    purchaseId: z.ZodString;
    sourceUserId: z.ZodString;
    targetUserId: z.ZodNullable<z.ZodOptional<z.ZodString>>;
    createdAt: z.ZodNullable<z.ZodDate>;
    expiresAt: z.ZodNullable<z.ZodDate>;
    canceledAt: z.ZodNullable<z.ZodDate>;
    confirmedAt: z.ZodNullable<z.ZodDate>;
    completedAt: z.ZodNullable<z.ZodDate>;
}, "strip", z.ZodTypeAny, {
    id: string;
    createdAt: Date | null;
    transferState: "AVAILABLE" | "INITIATED" | "VERIFIED" | "CANCELED" | "EXPIRED" | "CONFIRMED" | "COMPLETED";
    purchaseId: string;
    sourceUserId: string;
    expiresAt: Date | null;
    canceledAt: Date | null;
    confirmedAt: Date | null;
    completedAt: Date | null;
    targetUserId?: string | null | undefined;
}, {
    id: string;
    createdAt: Date | null;
    purchaseId: string;
    sourceUserId: string;
    expiresAt: Date | null;
    canceledAt: Date | null;
    confirmedAt: Date | null;
    completedAt: Date | null;
    transferState?: "AVAILABLE" | "INITIATED" | "VERIFIED" | "CANCELED" | "EXPIRED" | "CONFIRMED" | "COMPLETED" | undefined;
    targetUserId?: string | null | undefined;
}>;
type PurchaseUserTransfer = z.infer<typeof purchaseUserTransferSchema>;
type PurchaseUserTransferState = 'AVAILABLE' | 'INITIATED' | 'VERIFIED' | 'CANCELED' | 'EXPIRED' | 'CONFIRMED' | 'COMPLETED';

export { type PurchaseUserTransfer, type PurchaseUserTransferState, purchaseUserTransferSchema };
