import type {
  ZoneColor,
  ZoneInfo,
  ZonesOfRegulationPageContent,
  ZonesSafetyConnection,
} from '@/shared/types/app';
import type { ZonesOfRegulationTab } from '@/shared/constants/zonesOfRegulation';

export interface ZonesOfRegulationPage {
  readonly zones: readonly ZoneInfo[];
  readonly pageContent: ZonesOfRegulationPageContent;
  readonly expandedZone: ZoneColor | null;
  readonly selectedZone: ZoneInfo | null;
  readonly activeTab: ZonesOfRegulationTab;
  readonly safetyConnection: ZonesSafetyConnection | null;
  readonly isLoading: boolean;
  readonly zonesError: Error | null;
  readonly pageContentError: Error | null;
  readonly setActiveTab: (tab: ZonesOfRegulationTab) => void;
  readonly toggleExpandedZone: (zone: ZoneColor) => void;
}
