import { type UseVenueEventsOptions, type VenueMarket } from "@agg-build/hooks";
import type { EventListItemEvent, VenueEventWithMarkets } from "../item/event-list-item.types";
import type { EventListTab, EventListTabValue } from "./event-list.types";
/** Filter out events that are not open or have no open venue markets. */
export declare const filterOpenEvents: (events: VenueEventWithMarkets[]) => VenueEventWithMarkets[];
export declare const sortEventsByVolumeDesc: (events: VenueEventWithMarkets[], sortEventsBy?: "volume") => VenueEventWithMarkets[];
export type EventLifecycleGroup = {
    open: VenueEventWithMarkets[];
    upcoming: VenueEventWithMarkets[];
    resolved: VenueEventWithMarkets[];
};
export declare const splitEventsByLifecycle: (events: VenueEventWithMarkets[]) => EventLifecycleGroup;
export declare const mapEventToEventListItemEvent: (event: VenueEventWithMarkets) => EventListItemEvent | null;
export declare const filterEventsByTabValue: (events: VenueEventWithMarkets[], _tabValue: EventListTabValue) => VenueEventWithMarkets[];
/** Filter markets to only those with status "open" or undefined (treated as open). */
export declare const filterOpenMarkets: (markets: VenueMarket[]) => VenueMarket[];
/** A single drilled-into level beneath the active top-level tab. */
export type SubcategoryPathEntry = {
    id: string;
    label: string;
    eventCount: number;
};
export type CategoryNavigationItem = {
    id: string;
    name: string;
};
export declare const sortCategoriesForNavigation: <TCategory extends CategoryNavigationItem>(categories: readonly TCategory[]) => TCategory[];
/**
 * Resolve the categoryIds to send to the API based on the current drill path.
 * - At the deepest selected level, filter by that category id only.
 * - With an empty path, use the provided fallback category ids.
 */
export declare const resolveCategoryIdsFromPath: (path: readonly SubcategoryPathEntry[], fallbackCategoryIds: string[] | undefined) => string[] | undefined;
export declare const resolveTabVenus: (tab: EventListTab | undefined, visibleVenues?: readonly string[]) => UseVenueEventsOptions["venues"] | undefined;
