import type RootStore from '../RootStore';
import { BaseSubButtonProvider } from '../SubButtonProvider';
import { type SearchSubButtonConfig } from '../types';
export declare class SessionsSubButtonProvider extends BaseSubButtonProvider {
    private rootStore;
    readonly id = "sessions";
    constructor(rootStore: RootStore);
    private get computedSubButtons();
    createSubButtons(): SearchSubButtonConfig[];
    handleSubButtonClick(subButtonId: string): void;
    shouldShowSubButtons(): boolean;
    /**
     * Reports a sub-button click to stats. Must run BEFORE the handler mutates
     * state, because it compares against the sub-button currently selected — a
     * click on the one already selected is not a new view of it. (The store's
     * `handleSubButtonClick` guards the same case the same way, but the UI calls
     * the `onClick` baked into each config and never reaches that guard.)
     *
     * Deliberately NOT the button's own `active`: `sessions_show_all` is also
     * active whenever no sub-button and no track are selected — the state every
     * path that opens the sessions list leaves behind — which made the first
     * "All Tracks" click, the most common one there is, structurally impossible
     * to report.
     *
     * Captions are data (`track.name`) or a plain literal, never `t()`, so the
     * value is stable across locales. Tagged `subbutton` to keep this row
     * separable from the main button row.
     */
    private reportActivation;
    private handleSessionsShowAllClick;
    private handleSessionsTrackClick;
}
//# sourceMappingURL=SessionsSubButtonProvider.d.ts.map