import { Post } from "./api"; import { SelectOption } from "./components"; export interface SfSyncSettings { config_list?: SfSyncConfigList; siteUrl?: string; siteId?: string; selected_config?: string | null; page_url?: string; api_key_verified?: boolean; api_key?: string; } export interface SfSyncActionButton { text_color?: string; bg_color?: string; text?: string; action_url?: string; } export interface SfSyncSocialIcon { id?: string; title?: string; image_url?: string; action_url?: string; image_id?: string; } export interface SfSyncPageHeader { title?: string; image_url?: string; action_button?: SfSyncActionButton; header_link?: string; socialIcons?: Array; image_id?: string; } interface SharedConfigProps { biography?: string; name?: string; username?: string; profile_picture_url?: string; media_limit?: number | null; page_slug?: string; language?: string; posts?: Post[]; page_header?: SfSyncPageHeader; google_analytics_id?: string; page_url?: string; scope?: string; last_modified?: string; footer_mode?: "automatic" | "dark" | "light"; show_footer?: "on" | "off"; } export interface SfSyncConfigList { [ig_user_id: string]: SharedConfigProps; } export interface SfSyncConfigListExpanded extends SharedConfigProps { ig_user_id: string; } export type SfSyncConfigListKey = keyof SharedConfigProps | "ig_user_id"; export type LinkStatusFilter = "linked" | "unlinked"; export type MediaTypeFilter = "CAROUSEL_ALBUM" | "VIDEO" | "IMAGE"; export type LinkStatusOption = SelectOption & { value: LinkStatusFilter }; export type MediaTypeOption = SelectOption & { value: MediaTypeFilter }; export type SizeLevel = "sm" | "md" | "lg"; export type ScopeFilter = "tag" | "post" | "category"; export type ScopeOption = SelectOption & { value: ScopeFilter }; export interface Language { code: string; native_name: string; translated_name: string; }