import type { Geometry } from 'geojson'; export type SupportedGeometry = Extract; export interface Location { id: string; name: string; geometryReference?: string; geometry: SupportedGeometry; attribution?: string; } export interface DateRange { start: string; end: string; } export interface ResearchProject { project_id: string; location_id: string; topic: string; date_range: DateRange; involved_actors: string[]; themes: string[]; mocked_fields: string[]; } export interface TcaCluster { cluster_id: string; name: string; } export interface PersonProfile { person_id: string; name: string; email?: string; disciplines: string[]; canonical_name?: string; summary?: string; role?: string; institution?: string; research_field?: string; tca_clusters?: TcaCluster[]; image_url?: string; orcid?: string; sources?: string[]; } export interface Contribution { project_id: string; person_id: string; discipline: string; contribution: string; is_mock_contribution: boolean; } export interface ValidationIssue { code: 'orphan-project' | 'orphan-person' | 'missing-location' | 'invalid-record' | 'geometry-load'; message: string; recordId?: string; } export interface TransectDataset { metadata: Record; locations: Location[]; projects: ResearchProject[]; people: PersonProfile[]; contributions: Contribution[]; validContributions: Contribution[]; issues: ValidationIssue[]; locationById: Map; projectById: Map; personById: Map; contributionsByProject: Map; } export interface Filters { location: string; theme: string; researcher: string; discipline: string; actor: string; date: string; } export interface ExplorerState { filters: Filters; selectedLocationId: string | null; selectedProjectId: string | null; selectedPersonId: string | null; hoveredProjectId: string | null; focusedProjectId: string | null; } export declare const emptyFilters: () => Filters; export declare const initialState: () => ExplorerState; //# sourceMappingURL=model.d.ts.map