import type { Db, MarketplacePluginOptions } from "../types.js"; export declare class CommissionService { private db; private options; constructor(db: Db, options: MarketplacePluginOptions); createRule(data: { name: string; type: string; rateBps: number; categorySlug?: string; vendorId?: string; vendorTier?: string; minVolumeCents?: number; maxVolumeCents?: number; validFrom?: Date | undefined; validUntil?: Date | undefined; priority?: number; }): Promise<{ name: string; id: string; type: string; priority: number; vendorId: string | null; isActive: boolean; validFrom: Date | null; validUntil: Date | null; rateBps: number; categorySlug: string | null; vendorTier: string | null; minVolumeCents: number | null; maxVolumeCents: number | null; } | undefined>; updateRule(id: string, data: Record): Promise<{ id: string; name: string; type: string; categorySlug: string | null; vendorId: string | null; vendorTier: string | null; minVolumeCents: number | null; maxVolumeCents: number | null; rateBps: number; validFrom: Date | null; validUntil: Date | null; priority: number; isActive: boolean; } | null>; deleteRule(id: string): Promise; listRules(): Promise<{ id: string; name: string; type: string; categorySlug: string | null; vendorId: string | null; vendorTier: string | null; minVolumeCents: number | null; maxVolumeCents: number | null; rateBps: number; validFrom: Date | null; validUntil: Date | null; priority: number; isActive: boolean; }[]>; /** * Resolve the effective commission rate for a given vendor+category+volume. * Priority order per RFC ยง5.2: * 1. Vendor-specific + category-specific * 2. Category-specific (any vendor) * 3. Vendor tier rule * 4. Volume tier rule * 5. Promotional rule * 6. Vendor-level flat rate * 7. Plugin default */ resolveRate(vendorId: string, categorySlug?: string, volumeCents?: number): Promise; previewRate(vendorId: string, categorySlug?: string, volumeCents?: number): Promise<{ rateBps: number; ratePercent: number; }>; } //# sourceMappingURL=commission.d.ts.map