import type { UploadedImage } from '@prezly/uploads'; import type { Iso8601DateTime } from './common'; import type { CultureRef } from './Culture'; import type { NewroomThemeRef, NewsroomThemePreset } from './NewsroomTheme'; export interface NewsroomRef { uuid: string; /** * @deprecated Please use `uuid` instead. * @see uuid */ id: number; display_name: string; thumbnail_url: string; name: string; subdomain: string; domain: string; status: Newsroom.Status; /** * @deprecated Please use `status` instead * @see status */ is_active: boolean; /** * @deprecated Please use `status` instead * @see status */ is_archived: boolean; is_demo: boolean; is_multilingual: boolean; is_indexable: boolean; /** * Timezone name in the ICANN tz database. */ timezone: string; /** * Moment.js time format. */ time_format: string; /** * Moment.js date format. */ date_format: string; /** * @deprecated Please use `is_online` instead. * @see is_online */ is_offline: boolean; is_online: boolean; url: string; /** * @deprecated Do not rely on these. */ links: { media_gallery_api: string; analytics_and_visibility_settings: string; categories_management: string; company_info_settings: string; contacts_management: string; domain_settings: string; edit: string; gallery_management: string; hub_settings: string; languages: string; look_and_feel_settings: string; /** * @deprecated */ manual_subscription_management: string; privacy_settings: string; widget_settings: string; }; active_theme?: NewroomThemeRef | null; is_auto_created: boolean; created_at: Iso8601DateTime; } export interface Newsroom extends NewsroomRef { is_hub: boolean; hub: { parent: Newsroom.HubPeer; siblings: Newsroom.HubPeer[]; layout: Newsroom.HubLayout; } | null; /** * The hub layout that applies to this newsroom: its own when it is a hub, or its parent * hub's when it is a member. `null` when the newsroom is not part of a hub group. */ hub_layout: Newsroom.HubLayout | null; cultures: CultureRef[]; campaigns_number: number; stories_number: number; pitches_number: number; coverage_number: number; public_galleries_number: number; square_logo: UploadedImage | null; newsroom_logo: UploadedImage | null; icon: UploadedImage | null; email_logo: UploadedImage | null; email_logo_alignment: Newsroom.EmailLogoAlignment; email_branding_mode: Newsroom.EmailBrandingMode; email_branding: Newsroom.EmailBranding; is_privacy_portal_enabled: boolean; /** * @deprecated Please use `policies.privacy_policy.link` instead. */ custom_privacy_policy_link: string | null; custom_data_request_link: string | null; tracking_policy: Newsroom.TrackingPolicy; onetrust_cookie_consent: { is_enabled: boolean; category: string; script: string; }; google_analytics_id: string | null; /** * @deprecated Please use `google_analytics_id` instead. * @see google_analytics_id */ ga_tracking_id: string | null; google_search_console_key: string | null; segment_analytics_id: string | null; is_subscription_form_enabled: boolean; auto_create_contacts_from_subscribers: boolean; is_white_labeled: boolean; redirect_to_canonical_url: boolean; suggested_opoint_search_params?: Record | null; is_plausible_enabled: boolean; plausible_site_id: string; /** * Present when user has permission */ plausible_shared_link?: string | null; default_plausible_dashboard_page?: string | null; plausible_stats: { visits_last_7_days: number | null; visits_last_7_days_previous: number | null; }; active_theme_preset: NewsroomThemePreset; } export declare namespace Newsroom { interface HubPeer extends NewsroomRef { cultures: (CultureRef & { is_default: boolean; })[]; } enum HubLayout { TILES = "tiles", MARKET_DROPDOWN = "market_dropdown" } enum Status { ACTIVE = "active",// i.e. "Live" INACTIVE = "inactive",// i.e. "Not live" ARCHIVED = "archived" } interface EmailBranding { background_color: string; header_background_color: string; header_link_color: string; title_color: string; text_color: string; link_color: string; /** @deprecated This is not used in email styling */ link_hover_color?: string; } enum EmailBrandingMode { DEFAULT = "default", CUSTOM = "custom" } enum TrackingPolicy { /** * @deprecated Please use `NORMAL` instead. */ DEFAULT = "default", DISABLED = "disabled", /** * @deprecated Please use `STRICT` instead. */ CONSENT_TO_IDENTIFY = "consent-to-identify", STRICT = "strict", NORMAL = "normal", LENIENT = "lenient" } enum EmailLogoAlignment { LEFT = "left", CENTER = "center", RIGHT = "right" } function isActive(newsroom: Newsroom['status']): boolean; function isActive(newsroom: Pick): boolean; function isInactive(newsroom: Newsroom['status']): boolean; function isInactive(newsroom: Pick): boolean; function isArchived(newsroom: Newsroom['status']): boolean; function isArchived(newsroom: Pick): boolean; interface ExtraFields { policies: { privacy_policy: { link: string; } | { content: string; origin: 'default' | 'custom'; }; cookie_policy: { link: string; } | { content: string; origin: 'default' | 'custom'; }; }; draft_stories_number: number; published_stories_number: number; draft_campaigns_number: number; scheduled_campaigns_number: number; sent_campaigns_number: number; draft_pitches_number: number; scheduled_pitches_number: number; sent_pitches_number: number; online_coverage_number: number; } }