export type RfmThresholdRowLike = { kind: 'r' | 'f' | string; score: number; min_value: number; max_value: number; }; export type RfmRecencyDefinition = { within_days: number; exclude_within_days?: number | null; }; export type RfmFrequencyDefinition = { op: string; value: number; value2?: number | null; }; export type RfmSegmentDefinition = { segment_key: string; segment_name: string; window_days: number; recency: RfmRecencyDefinition; frequency: RfmFrequencyDefinition; criteria: any; }; type ScoreRange = { minScore: number; maxScore: number; }; export declare class RfmSegmentBuilder { static getSegmentScoreRanges(segmentKey: string): { r: ScoreRange; f: ScoreRange; } | null; static getSegmentName(segmentKey: string): string; static clampInt(n: number, min: number, max: number): number; static buildDefinition(params: { rfEventName: string; windowDays: number; segmentKey: string; thresholds: RfmThresholdRowLike[]; filterCriteria?: any | null; }): RfmSegmentDefinition; } export {}; //# sourceMappingURL=RfmSegmentBuilder.d.ts.map