/** * Represents a single filter category (e.g. "Member Type", "Status"). */ export interface FilterPopoverCategory { id: string; label: string; options: FilterPopoverOption[]; selectedCount?: number; } /** * Represents an individual option within a filter category. */ export interface FilterPopoverOption { id: string; label: string; checked: boolean; } /** * The complete filter state emitted on Apply. * Key = category id, Value = array of selected option labels. */ export interface FilterPopoverSelection { [categoryId: string]: string[]; }