import type { MapDataProductBinding, MapSubjectState } from "./mapPageContract.js"; import type { MapPresentationFilters, MapPresentationProfile } from "./mapPresentationProfile.js"; import type { GridSectorSelection } from "./mapRendererContract.js"; import type { SectorGridLodProfile } from "./mapSectorWorkspace.js"; import type { MapRuntimeBinding, MapRuntimeFact } from "./useMapDataProductRuntime.js"; export type MapSelectableEntity = { id: string; title: string; kind: string; status: string; bindingId: string; dataProductId: string; fact: MapRuntimeFact; }; export type MapSectorScope = { excludedBindingIds: string[]; excludedProviders: string[]; excludedObjectKinds: string[]; }; export type MapPresentationSummary = { bindingId: string; displayName: string; profile: MapPresentationProfile; total: number; counts: Record>; }; export type MapFilteredTarget = { bindingId: string; entityId: string; title: string; status: string; renderable: boolean; }; export function mapProfileHasSubjectWindowControls(profile: MapPresentationProfile): boolean; export function primaryMapBindingConfigs(bindingConfigs: MapDataProductBinding[]): MapDataProductBinding[]; export function primaryMapRuntimeBindings(runtimeBindings: MapRuntimeBinding[], bindingConfigs: MapDataProductBinding[]): MapRuntimeBinding[]; export function buildMapPresentationFilters(subjectStates: Record, bindingConfigs: MapDataProductBinding[], profiles: MapPresentationProfile[]): MapPresentationFilters; export function buildSelectableMapEntities(runtimeBindings: MapRuntimeBinding[], bindingConfigs: MapDataProductBinding[], profiles: MapPresentationProfile[]): MapSelectableEntity[]; export function buildSectorSpatialEntities(selectable: MapSelectableEntity[], selection: GridSectorSelection | null, profiles: SectorGridLodProfile[], origin: { latitude: number; longitude: number }): MapSelectableEntity[]; export function buildSectorBindingOptions(bindingConfigs: MapDataProductBinding[], sectorEntities: MapSelectableEntity[]): Array<{ value: string; label: string; count: number }>; export function bindingProjectsField(bindingConfigs: MapDataProductBinding[], field: string): boolean; export function buildSectorScopeOptions(sectorEntities: MapSelectableEntity[], field: string, enabled?: boolean): Array<{ value: string; label: string; count: number }>; export function sectorEntityIsExcluded(entity: MapSelectableEntity, scope: MapSectorScope): boolean; export function buildSectorVisibleEntities(input: { sectorEntities: MapSelectableEntity[]; bindingConfigs: MapDataProductBinding[]; presentationProfiles: MapPresentationProfile[]; presentationFilters: MapPresentationFilters; scope: MapSectorScope }): MapSelectableEntity[]; export function scopeMapRuntimeBindings(input: { runtimeBindings: MapRuntimeBinding[]; selection: GridSectorSelection | null; gridProfiles: SectorGridLodProfile[]; origin: { latitude: number; longitude: number }; hideOutsideSector: boolean; scope: MapSectorScope }): MapRuntimeBinding[]; export function buildMapPresentationSummaries(bindingConfigs: MapDataProductBinding[], runtimeBindings: MapRuntimeBinding[], profiles: MapPresentationProfile[]): MapPresentationSummary[]; export function buildFilteredMapTargets(runtimeBindings: MapRuntimeBinding[], bindingConfigs: MapDataProductBinding[], profiles: MapPresentationProfile[], filters: MapPresentationFilters): MapFilteredTarget[]; export function planMapSubjectReveal(input: { entity: MapSelectableEntity; subjectState: MapSubjectState; profile: MapPresentationProfile | undefined; selectedSector: GridSectorSelection | null; gridProfiles: SectorGridLodProfile[]; origin: { latitude: number; longitude: number }; hideOutsideSector: boolean; scope: MapSectorScope }): { subjectState: MapSubjectState; hideOutsideSector: boolean; scope: MapSectorScope };