import { LineItem } from "@medusajs/medusa";
export interface BasePluginOptions {
    sendgridEnabled: boolean;
    from: {
        name?: string;
        email: string;
    } | string;
    templateId: string;
    header?: string;
    days_to_track?: number;
    subject?: string;
    localization?: {
        [key: string]: {
            subject?: string;
            header?: string;
            templateId: string;
        };
    };
}
export interface IntervalOptions {
    interval: string | number;
    subject?: string;
    header?: string;
    templateId?: string;
    localization?: {
        [key: string]: {
            subject?: string;
            header?: string;
            templateId: string;
        };
    };
}
export interface AutomatedAbandonedCart extends BasePluginOptions {
    intervals: Array<IntervalOptions>;
    max_overdue: string;
    set_as_completed_if_overdue: boolean;
}
export interface ManualAbandonedCart extends BasePluginOptions {
    localization: {
        [key: string]: {
            subject?: string;
            header?: string;
            templateId: string;
        };
    };
}
export type PluginOptions = AutomatedAbandonedCart | ManualAbandonedCart;
export type NewLineItem = Omit<LineItem, "beforeUpdate" | "afterUpdateOrLoad"> & {
    price: string;
};
export interface TransformedCart {
    id: string;
    email: string;
    items: NewLineItem[];
    cart_context: Record<string, unknown>;
    first_name: string;
    last_name: string;
    totalPrice: number;
    created_at: Date;
    updated_at: Date;
    currency: string;
    region: string;
    country_code: string;
    region_name: string;
    abandoned_count?: number;
    abandoned_lastdate?: Date;
    abandoned_last_interval?: number;
    abandoned_completed_at?: Date;
    subject?: string;
    header?: string;
}
