import { BeatApi } from '../api'; import { Beat } from '../types'; import { GlobalStore } from './GlobalStore'; export declare class BeatStore { globalStore: GlobalStore; api: BeatApi; beats: Beat[]; isLoading: boolean; constructor(globalStore: GlobalStore); loadBeats: () => Promise; /** * Persists changes to an offer-backed beat (pulse marketing offers, `PUT offers/:guid`), * e.g. flagging `has_been_clicked` when its CTA is pressed. Rethrows so callers driving * UI state can surface the failure. */ updateOffer: (beat: Beat) => Promise; getFilteredBeats(filter: { categoryGuids?: string[]; templates?: string[]; }): Beat[]; filterBeatsByCategory(beats: Beat[], categoryGuids: string[]): Beat[]; filterBeatsByTemplate(beats: Beat[], templates: string[]): Beat[]; private captureError; }