/**
 * sceneIntervalBuilder — pure helpers that turn scene_reconstruction skill
 * envelopes into the two-layer scene model used by the Story pipeline.
 *
 * buildDisplayedScenes() returns the FULL list of detected scenes covering
 * the user-visible scene timeline — app_launches / user_gestures /
 * inertial_scrolls / idle_periods / screen_state_changes / system_events /
 * scroll_initiation / top_app_changes, with clean_timeline as a deterministic
 * backfill source and jank_events as a fallback when no gesture-like scene was
 * found. Android runtime rows (operation_chain / activity_lifecycle /
 * app_state_tracking / device_state) enrich scenes as context instead of
 * becoming deep-dive targets by default.
 *
 * buildAnalysisIntervals() takes that full list and selects the priority-
 * truncated subset that should run through SceneAnalysisJobRunner, applying
 * each manifest route's paramMapping to produce concrete skill parameters.
 *
 * Both functions are pure: no I/O, no globals, no side effects.
 */
import { DataEnvelope } from '../../types/dataContract';
import { DomainManifest, SceneRouteProfile } from '../config/domainManifest';
import { AnalysisInterval, DisplayedScene, SceneAnalysisSelection } from './types';
export interface BuildDisplayedScenesResult {
    scenes: DisplayedScene[];
    /** From the trace_time_range step, used by callers to size the analysis cap. */
    traceDurationSec: number;
}
export declare function buildDisplayedScenes(envelopes: DataEnvelope[]): BuildDisplayedScenesResult;
export interface BuildAnalysisIntervalsOptions {
    /** Hard upper bound on intervals returned. */
    cap: number;
    /** Defaults to DEFAULT_DOMAIN_MANIFEST. */
    manifest?: DomainManifest;
    /** Route profile for Stage 2. Defaults to legacy /scene-reconstruct behavior. */
    routeProfile?: SceneRouteProfile;
}
export declare function buildAnalysisIntervals(scenes: DisplayedScene[], options: BuildAnalysisIntervalsOptions): AnalysisInterval[];
export declare function isAnalysisEligibleScene(scene: DisplayedScene): boolean;
export declare function selectAnalysisEligibleScenes(scenes: DisplayedScene[], selection?: SceneAnalysisSelection): DisplayedScene[];
export declare function filterDisplayedScenesForSelection(scenes: DisplayedScene[], selection?: SceneAnalysisSelection): DisplayedScene[];
/**
 * Compute the same numeric priority the legacy strategy used: 90 when the
 * scene exceeds its threshold (a "problem" scene), 50 otherwise.
 */
export declare function computePriority(scene: DisplayedScene): number;
//# sourceMappingURL=sceneIntervalBuilder.d.ts.map