import { PoolClient } from '@evershop/postgres-query-builder'; import type { CouponRow } from '../../../../types/db/index.js'; type ProductCondition = { key: string; operator: 'IN' | 'NOT IN' | '=' | '!=' | '>' | '>=' | '<' | '<='; value: string | number | Array; }; type RequiredProduct = { key: string; operator: 'IN' | 'NOT IN' | '=' | '!=' | '>' | '>=' | '<' | '<='; qty?: string | number; value: string | number | Array; }; export type CouponData = { coupon: string; status: '0' | '1' | 0 | 1; discount_amount: string | number; discount_type: string; description?: string; free_shipping?: '0' | '1' | 0 | 1 | boolean; target_products?: { maxQty?: string | number; products?: ProductCondition[]; }; condition?: { order_total?: string | number; order_qty?: string | number; required_products?: RequiredProduct[]; }; user_condition?: { groups?: Array; emails?: string[]; purchased?: number; }; max_uses_time_per_coupon?: string; max_uses_time_per_customer?: string; start_date?: string | null; end_date?: string | null; [key: string]: unknown; }; declare const _default: (data: CouponData, context?: Record) => Promise; export default _default; export declare function hookBeforeInsertCouponData(callback: (data: CouponData, connection: PoolClient) => Promise, priority?: number): void; export declare function hookAfterInsertCouponData(callback: (data: CouponData, connection: PoolClient) => Promise, priority?: number): void; export declare function hookBeforeCreateCoupon(callback: (data: CouponData, context: Record) => Promise, priority?: number): void; export declare function hookAfterCreateCoupon(callback: (data: CouponData, context: Record) => Promise, priority?: number): void;