UNPKG

astro-loader-tweets

Version:
1,435 lines (1,432 loc) 50.1 kB
import { z } from 'astro/zod'; import { Loader } from 'astro/loaders'; declare const TweetSchema: z.ZodObject<{ id: z.ZodString; tweet: z.ZodObject<z.objectUtil.extendShape<{ id: z.ZodString; text: z.ZodString; edit_history_tweet_ids: z.ZodArray<z.ZodString, "many">; attachments: z.ZodOptional<z.ZodObject<{ media_keys: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; poll_ids: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; }, "strip", z.ZodTypeAny, { media_keys?: string[] | undefined; poll_ids?: string[] | undefined; }, { media_keys?: string[] | undefined; poll_ids?: string[] | undefined; }>>; author_id: z.ZodOptional<z.ZodString>; conversation_id: z.ZodOptional<z.ZodString>; created_at: z.ZodOptional<z.ZodString>; entities: z.ZodOptional<z.ZodObject<{ annotations: z.ZodOptional<z.ZodArray<z.ZodObject<{ start: z.ZodNumber; end: z.ZodNumber; probability: z.ZodNumber; type: z.ZodString; normalized_text: z.ZodString; }, "strip", z.ZodTypeAny, { type: string; start: number; end: number; probability: number; normalized_text: string; }, { type: string; start: number; end: number; probability: number; normalized_text: string; }>, "many">>; urls: z.ZodOptional<z.ZodArray<z.ZodObject<{ start: z.ZodNumber; end: z.ZodNumber; url: z.ZodString; expanded_url: z.ZodString; display_url: z.ZodString; unwound_url: z.ZodOptional<z.ZodString>; title: z.ZodOptional<z.ZodString>; description: z.ZodOptional<z.ZodString>; status: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>; media_key: z.ZodOptional<z.ZodString>; images: z.ZodOptional<z.ZodArray<z.ZodObject<{ url: z.ZodString; width: z.ZodNumber; height: z.ZodNumber; }, "strip", z.ZodTypeAny, { url: string; width: number; height: number; }, { url: string; width: number; height: number; }>, "many">>; }, "strip", z.ZodTypeAny, { start: number; end: number; url: string; expanded_url: string; display_url: string; status?: string | number | undefined; unwound_url?: string | undefined; title?: string | undefined; description?: string | undefined; media_key?: string | undefined; images?: { url: string; width: number; height: number; }[] | undefined; }, { start: number; end: number; url: string; expanded_url: string; display_url: string; status?: string | number | undefined; unwound_url?: string | undefined; title?: string | undefined; description?: string | undefined; media_key?: string | undefined; images?: { url: string; width: number; height: number; }[] | undefined; }>, "many">>; hashtags: z.ZodOptional<z.ZodArray<z.ZodObject<{ start: z.ZodNumber; end: z.ZodNumber; tag: z.ZodString; }, "strip", z.ZodTypeAny, { start: number; end: number; tag: string; }, { start: number; end: number; tag: string; }>, "many">>; cashtags: z.ZodOptional<z.ZodArray<z.ZodObject<{ start: z.ZodNumber; end: z.ZodNumber; tag: z.ZodString; }, "strip", z.ZodTypeAny, { start: number; end: number; tag: string; }, { start: number; end: number; tag: string; }>, "many">>; mentions: z.ZodOptional<z.ZodArray<z.ZodObject<{ start: z.ZodNumber; end: z.ZodNumber; username: z.ZodString; id: z.ZodString; }, "strip", z.ZodTypeAny, { id: string; start: number; end: number; username: string; }, { id: string; start: number; end: number; username: string; }>, "many">>; }, "strip", z.ZodTypeAny, { annotations?: { type: string; start: number; end: number; probability: number; normalized_text: string; }[] | undefined; urls?: { start: number; end: number; url: string; expanded_url: string; display_url: string; status?: string | number | undefined; unwound_url?: string | undefined; title?: string | undefined; description?: string | undefined; media_key?: string | undefined; images?: { url: string; width: number; height: number; }[] | undefined; }[] | undefined; hashtags?: { start: number; end: number; tag: string; }[] | undefined; cashtags?: { start: number; end: number; tag: string; }[] | undefined; mentions?: { id: string; start: number; end: number; username: string; }[] | undefined; }, { annotations?: { type: string; start: number; end: number; probability: number; normalized_text: string; }[] | undefined; urls?: { start: number; end: number; url: string; expanded_url: string; display_url: string; status?: string | number | undefined; unwound_url?: string | undefined; title?: string | undefined; description?: string | undefined; media_key?: string | undefined; images?: { url: string; width: number; height: number; }[] | undefined; }[] | undefined; hashtags?: { start: number; end: number; tag: string; }[] | undefined; cashtags?: { start: number; end: number; tag: string; }[] | undefined; mentions?: { id: string; start: number; end: number; username: string; }[] | undefined; }>>; geo: z.ZodOptional<z.ZodObject<{ coordinates: z.ZodObject<{ type: z.ZodString; coordinates: z.ZodNullable<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>; }, "strip", z.ZodTypeAny, { type: string; coordinates: [number, number] | null; }, { type: string; coordinates: [number, number] | null; }>; place_id: z.ZodString; }, "strip", z.ZodTypeAny, { coordinates: { type: string; coordinates: [number, number] | null; }; place_id: string; }, { coordinates: { type: string; coordinates: [number, number] | null; }; place_id: string; }>>; in_reply_to_user_id: z.ZodOptional<z.ZodString>; lang: z.ZodOptional<z.ZodString>; public_metrics: z.ZodOptional<z.ZodObject<{ retweet_count: z.ZodNumber; reply_count: z.ZodNumber; like_count: z.ZodNumber; quote_count: z.ZodNumber; impression_count: z.ZodNumber; bookmark_count: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { retweet_count: number; reply_count: number; like_count: number; quote_count: number; impression_count: number; bookmark_count?: number | undefined; }, { retweet_count: number; reply_count: number; like_count: number; quote_count: number; impression_count: number; bookmark_count?: number | undefined; }>>; referenced_tweets: z.ZodOptional<z.ZodArray<z.ZodOptional<z.ZodObject<{ type: z.ZodUnion<[z.ZodLiteral<"retweeted">, z.ZodLiteral<"quoted">, z.ZodLiteral<"replied_to">]>; id: z.ZodString; }, "strip", z.ZodTypeAny, { type: "retweeted" | "quoted" | "replied_to"; id: string; }, { type: "retweeted" | "quoted" | "replied_to"; id: string; }>>, "many">>; source: z.ZodOptional<z.ZodString>; }, { text_html: z.ZodString; text_markdown: z.ZodString; view_type: z.ZodEnum<["none", "media", "link"]>; url_for_link_view: z.ZodOptional<z.ZodString>; }>, "strip", z.ZodTypeAny, { id: string; text: string; edit_history_tweet_ids: string[]; text_html: string; text_markdown: string; view_type: "none" | "media" | "link"; attachments?: { media_keys?: string[] | undefined; poll_ids?: string[] | undefined; } | undefined; author_id?: string | undefined; conversation_id?: string | undefined; created_at?: string | undefined; entities?: { annotations?: { type: string; start: number; end: number; probability: number; normalized_text: string; }[] | undefined; urls?: { start: number; end: number; url: string; expanded_url: string; display_url: string; status?: string | number | undefined; unwound_url?: string | undefined; title?: string | undefined; description?: string | undefined; media_key?: string | undefined; images?: { url: string; width: number; height: number; }[] | undefined; }[] | undefined; hashtags?: { start: number; end: number; tag: string; }[] | undefined; cashtags?: { start: number; end: number; tag: string; }[] | undefined; mentions?: { id: string; start: number; end: number; username: string; }[] | undefined; } | undefined; geo?: { coordinates: { type: string; coordinates: [number, number] | null; }; place_id: string; } | undefined; in_reply_to_user_id?: string | undefined; lang?: string | undefined; public_metrics?: { retweet_count: number; reply_count: number; like_count: number; quote_count: number; impression_count: number; bookmark_count?: number | undefined; } | undefined; referenced_tweets?: ({ type: "retweeted" | "quoted" | "replied_to"; id: string; } | undefined)[] | undefined; source?: string | undefined; url_for_link_view?: string | undefined; }, { id: string; text: string; edit_history_tweet_ids: string[]; text_html: string; text_markdown: string; view_type: "none" | "media" | "link"; attachments?: { media_keys?: string[] | undefined; poll_ids?: string[] | undefined; } | undefined; author_id?: string | undefined; conversation_id?: string | undefined; created_at?: string | undefined; entities?: { annotations?: { type: string; start: number; end: number; probability: number; normalized_text: string; }[] | undefined; urls?: { start: number; end: number; url: string; expanded_url: string; display_url: string; status?: string | number | undefined; unwound_url?: string | undefined; title?: string | undefined; description?: string | undefined; media_key?: string | undefined; images?: { url: string; width: number; height: number; }[] | undefined; }[] | undefined; hashtags?: { start: number; end: number; tag: string; }[] | undefined; cashtags?: { start: number; end: number; tag: string; }[] | undefined; mentions?: { id: string; start: number; end: number; username: string; }[] | undefined; } | undefined; geo?: { coordinates: { type: string; coordinates: [number, number] | null; }; place_id: string; } | undefined; in_reply_to_user_id?: string | undefined; lang?: string | undefined; public_metrics?: { retweet_count: number; reply_count: number; like_count: number; quote_count: number; impression_count: number; bookmark_count?: number | undefined; } | undefined; referenced_tweets?: ({ type: "retweeted" | "quoted" | "replied_to"; id: string; } | undefined)[] | undefined; source?: string | undefined; url_for_link_view?: string | undefined; }>; user: z.ZodUnion<[z.ZodObject<{ id: z.ZodString; name: z.ZodString; username: z.ZodString; connection_status: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; created_at: z.ZodOptional<z.ZodString>; description: z.ZodOptional<z.ZodString>; entities: z.ZodOptional<z.ZodObject<{ url: z.ZodOptional<z.ZodObject<{ urls: z.ZodArray<z.ZodObject<z.objectUtil.extendShape<{ start: z.ZodNumber; end: z.ZodNumber; }, { url: z.ZodString; expanded_url: z.ZodString; display_url: z.ZodString; }>, "strip", z.ZodTypeAny, { start: number; end: number; url: string; expanded_url: string; display_url: string; }, { start: number; end: number; url: string; expanded_url: string; display_url: string; }>, "many">; }, "strip", z.ZodTypeAny, { urls: { start: number; end: number; url: string; expanded_url: string; display_url: string; }[]; }, { urls: { start: number; end: number; url: string; expanded_url: string; display_url: string; }[]; }>>; description: z.ZodOptional<z.ZodObject<{ urls: z.ZodOptional<z.ZodArray<z.ZodObject<z.objectUtil.extendShape<{ start: z.ZodNumber; end: z.ZodNumber; }, { url: z.ZodString; expanded_url: z.ZodString; display_url: z.ZodString; }>, "strip", z.ZodTypeAny, { start: number; end: number; url: string; expanded_url: string; display_url: string; }, { start: number; end: number; url: string; expanded_url: string; display_url: string; }>, "many">>; hashtags: z.ZodOptional<z.ZodArray<z.ZodObject<z.objectUtil.extendShape<{ start: z.ZodNumber; end: z.ZodNumber; }, { tag: z.ZodOptional<z.ZodString>; hashtag: z.ZodOptional<z.ZodString>; }>, "strip", z.ZodTypeAny, { start: number; end: number; tag?: string | undefined; hashtag?: string | undefined; }, { start: number; end: number; tag?: string | undefined; hashtag?: string | undefined; }>, "many">>; cashtags: z.ZodOptional<z.ZodArray<z.ZodObject<z.objectUtil.extendShape<{ start: z.ZodNumber; end: z.ZodNumber; }, { tag: z.ZodOptional<z.ZodString>; cashtag: z.ZodOptional<z.ZodString>; }>, "strip", z.ZodTypeAny, { start: number; end: number; tag?: string | undefined; cashtag?: string | undefined; }, { start: number; end: number; tag?: string | undefined; cashtag?: string | undefined; }>, "many">>; mentions: z.ZodOptional<z.ZodArray<z.ZodObject<z.objectUtil.extendShape<{ start: z.ZodNumber; end: z.ZodNumber; }, { username: z.ZodOptional<z.ZodString>; }>, "strip", z.ZodTypeAny, { start: number; end: number; username?: string | undefined; }, { start: number; end: number; username?: string | undefined; }>, "many">>; }, "strip", z.ZodTypeAny, { urls?: { start: number; end: number; url: string; expanded_url: string; display_url: string; }[] | undefined; hashtags?: { start: number; end: number; tag?: string | undefined; hashtag?: string | undefined; }[] | undefined; cashtags?: { start: number; end: number; tag?: string | undefined; cashtag?: string | undefined; }[] | undefined; mentions?: { start: number; end: number; username?: string | undefined; }[] | undefined; }, { urls?: { start: number; end: number; url: string; expanded_url: string; display_url: string; }[] | undefined; hashtags?: { start: number; end: number; tag?: string | undefined; hashtag?: string | undefined; }[] | undefined; cashtags?: { start: number; end: number; tag?: string | undefined; cashtag?: string | undefined; }[] | undefined; mentions?: { start: number; end: number; username?: string | undefined; }[] | undefined; }>>; }, "strip", z.ZodTypeAny, { url?: { urls: { start: number; end: number; url: string; expanded_url: string; display_url: string; }[]; } | undefined; description?: { urls?: { start: number; end: number; url: string; expanded_url: string; display_url: string; }[] | undefined; hashtags?: { start: number; end: number; tag?: string | undefined; hashtag?: string | undefined; }[] | undefined; cashtags?: { start: number; end: number; tag?: string | undefined; cashtag?: string | undefined; }[] | undefined; mentions?: { start: number; end: number; username?: string | undefined; }[] | undefined; } | undefined; }, { url?: { urls: { start: number; end: number; url: string; expanded_url: string; display_url: string; }[]; } | undefined; description?: { urls?: { start: number; end: number; url: string; expanded_url: string; display_url: string; }[] | undefined; hashtags?: { start: number; end: number; tag?: string | undefined; hashtag?: string | undefined; }[] | undefined; cashtags?: { start: number; end: number; tag?: string | undefined; cashtag?: string | undefined; }[] | undefined; mentions?: { start: number; end: number; username?: string | undefined; }[] | undefined; } | undefined; }>>; profile_image_url: z.ZodOptional<z.ZodString>; public_metrics: z.ZodOptional<z.ZodObject<{ followers_count: z.ZodOptional<z.ZodNumber>; following_count: z.ZodOptional<z.ZodNumber>; tweet_count: z.ZodOptional<z.ZodNumber>; listed_count: z.ZodOptional<z.ZodNumber>; like_count: z.ZodOptional<z.ZodNumber>; media_count: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { like_count?: number | undefined; followers_count?: number | undefined; following_count?: number | undefined; tweet_count?: number | undefined; listed_count?: number | undefined; media_count?: number | undefined; }, { like_count?: number | undefined; followers_count?: number | undefined; following_count?: number | undefined; tweet_count?: number | undefined; listed_count?: number | undefined; media_count?: number | undefined; }>>; url: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { id: string; username: string; name: string; created_at?: string | undefined; url?: string | undefined; description?: string | undefined; entities?: { url?: { urls: { start: number; end: number; url: string; expanded_url: string; display_url: string; }[]; } | undefined; description?: { urls?: { start: number; end: number; url: string; expanded_url: string; display_url: string; }[] | undefined; hashtags?: { start: number; end: number; tag?: string | undefined; hashtag?: string | undefined; }[] | undefined; cashtags?: { start: number; end: number; tag?: string | undefined; cashtag?: string | undefined; }[] | undefined; mentions?: { start: number; end: number; username?: string | undefined; }[] | undefined; } | undefined; } | undefined; public_metrics?: { like_count?: number | undefined; followers_count?: number | undefined; following_count?: number | undefined; tweet_count?: number | undefined; listed_count?: number | undefined; media_count?: number | undefined; } | undefined; connection_status?: string[] | undefined; profile_image_url?: string | undefined; }, { id: string; username: string; name: string; created_at?: string | undefined; url?: string | undefined; description?: string | undefined; entities?: { url?: { urls: { start: number; end: number; url: string; expanded_url: string; display_url: string; }[]; } | undefined; description?: { urls?: { start: number; end: number; url: string; expanded_url: string; display_url: string; }[] | undefined; hashtags?: { start: number; end: number; tag?: string | undefined; hashtag?: string | undefined; }[] | undefined; cashtags?: { start: number; end: number; tag?: string | undefined; cashtag?: string | undefined; }[] | undefined; mentions?: { start: number; end: number; username?: string | undefined; }[] | undefined; } | undefined; } | undefined; public_metrics?: { like_count?: number | undefined; followers_count?: number | undefined; following_count?: number | undefined; tweet_count?: number | undefined; listed_count?: number | undefined; media_count?: number | undefined; } | undefined; connection_status?: string[] | undefined; profile_image_url?: string | undefined; }>, z.ZodNull]>; place: z.ZodUnion<[z.ZodObject<{ id: z.ZodString; full_name: z.ZodString; contained_within: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; country: z.ZodOptional<z.ZodString>; country_code: z.ZodOptional<z.ZodString>; geo: z.ZodOptional<z.ZodObject<{ type: z.ZodString; bbox: z.ZodArray<z.ZodNumber, "many">; properties: z.ZodAny; }, "strip", z.ZodTypeAny, { type: string; bbox: number[]; properties?: any; }, { type: string; bbox: number[]; properties?: any; }>>; name: z.ZodOptional<z.ZodString>; place_type: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { id: string; full_name: string; geo?: { type: string; bbox: number[]; properties?: any; } | undefined; name?: string | undefined; contained_within?: string[] | undefined; country?: string | undefined; country_code?: string | undefined; place_type?: string | undefined; }, { id: string; full_name: string; geo?: { type: string; bbox: number[]; properties?: any; } | undefined; name?: string | undefined; contained_within?: string[] | undefined; country?: string | undefined; country_code?: string | undefined; place_type?: string | undefined; }>, z.ZodNull]>; media: z.ZodUnion<[z.ZodArray<z.ZodObject<{ media_key: z.ZodString; type: z.ZodUnion<[z.ZodLiteral<"video">, z.ZodLiteral<"animated_gif">, z.ZodLiteral<"photo">, z.ZodString]>; url: z.ZodOptional<z.ZodString>; preview_image_url: z.ZodOptional<z.ZodString>; width: z.ZodOptional<z.ZodNumber>; height: z.ZodOptional<z.ZodNumber>; alt_text: z.ZodOptional<z.ZodString>; duration_ms: z.ZodOptional<z.ZodNumber>; public_metrics: z.ZodOptional<z.ZodObject<{ view_count: z.ZodNumber; }, "strip", z.ZodTypeAny, { view_count: number; }, { view_count: number; }>>; variants: z.ZodOptional<z.ZodArray<z.ZodObject<{ bit_rate: z.ZodOptional<z.ZodNumber>; content_type: z.ZodUnion<[z.ZodLiteral<"video/mp4">, z.ZodLiteral<"application/x-mpegURL">, z.ZodString]>; url: z.ZodString; }, "strip", z.ZodTypeAny, { url: string; content_type: string; bit_rate?: number | undefined; }, { url: string; content_type: string; bit_rate?: number | undefined; }>, "many">>; }, "strip", z.ZodTypeAny, { type: string; media_key: string; url?: string | undefined; width?: number | undefined; height?: number | undefined; public_metrics?: { view_count: number; } | undefined; preview_image_url?: string | undefined; alt_text?: string | undefined; duration_ms?: number | undefined; variants?: { url: string; content_type: string; bit_rate?: number | undefined; }[] | undefined; }, { type: string; media_key: string; url?: string | undefined; width?: number | undefined; height?: number | undefined; public_metrics?: { view_count: number; } | undefined; preview_image_url?: string | undefined; alt_text?: string | undefined; duration_ms?: number | undefined; variants?: { url: string; content_type: string; bit_rate?: number | undefined; }[] | undefined; }>, "many">, z.ZodNull]>; poll: z.ZodUnion<[z.ZodArray<z.ZodObject<{ id: z.ZodString; options: z.ZodArray<z.ZodObject<{ position: z.ZodNumber; label: z.ZodString; votes: z.ZodNumber; }, "strip", z.ZodTypeAny, { position: number; label: string; votes: number; }, { position: number; label: string; votes: number; }>, "many">; duration_minutes: z.ZodOptional<z.ZodNumber>; end_datetime: z.ZodOptional<z.ZodString>; voting_status: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { options: { position: number; label: string; votes: number; }[]; id: string; duration_minutes?: number | undefined; end_datetime?: string | undefined; voting_status?: string | undefined; }, { options: { position: number; label: string; votes: number; }[]; id: string; duration_minutes?: number | undefined; end_datetime?: string | undefined; voting_status?: string | undefined; }>, "many">, z.ZodNull]>; }, "strip", z.ZodTypeAny, { tweet: { id: string; text: string; edit_history_tweet_ids: string[]; text_html: string; text_markdown: string; view_type: "none" | "media" | "link"; attachments?: { media_keys?: string[] | undefined; poll_ids?: string[] | undefined; } | undefined; author_id?: string | undefined; conversation_id?: string | undefined; created_at?: string | undefined; entities?: { annotations?: { type: string; start: number; end: number; probability: number; normalized_text: string; }[] | undefined; urls?: { start: number; end: number; url: string; expanded_url: string; display_url: string; status?: string | number | undefined; unwound_url?: string | undefined; title?: string | undefined; description?: string | undefined; media_key?: string | undefined; images?: { url: string; width: number; height: number; }[] | undefined; }[] | undefined; hashtags?: { start: number; end: number; tag: string; }[] | undefined; cashtags?: { start: number; end: number; tag: string; }[] | undefined; mentions?: { id: string; start: number; end: number; username: string; }[] | undefined; } | undefined; geo?: { coordinates: { type: string; coordinates: [number, number] | null; }; place_id: string; } | undefined; in_reply_to_user_id?: string | undefined; lang?: string | undefined; public_metrics?: { retweet_count: number; reply_count: number; like_count: number; quote_count: number; impression_count: number; bookmark_count?: number | undefined; } | undefined; referenced_tweets?: ({ type: "retweeted" | "quoted" | "replied_to"; id: string; } | undefined)[] | undefined; source?: string | undefined; url_for_link_view?: string | undefined; }; id: string; media: { type: string; media_key: string; url?: string | undefined; width?: number | undefined; height?: number | undefined; public_metrics?: { view_count: number; } | undefined; preview_image_url?: string | undefined; alt_text?: string | undefined; duration_ms?: number | undefined; variants?: { url: string; content_type: string; bit_rate?: number | undefined; }[] | undefined; }[] | null; user: { id: string; username: string; name: string; created_at?: string | undefined; url?: string | undefined; description?: string | undefined; entities?: { url?: { urls: { start: number; end: number; url: string; expanded_url: string; display_url: string; }[]; } | undefined; description?: { urls?: { start: number; end: number; url: string; expanded_url: string; display_url: string; }[] | undefined; hashtags?: { start: number; end: number; tag?: string | undefined; hashtag?: string | undefined; }[] | undefined; cashtags?: { start: number; end: number; tag?: string | undefined; cashtag?: string | undefined; }[] | undefined; mentions?: { start: number; end: number; username?: string | undefined; }[] | undefined; } | undefined; } | undefined; public_metrics?: { like_count?: number | undefined; followers_count?: number | undefined; following_count?: number | undefined; tweet_count?: number | undefined; listed_count?: number | undefined; media_count?: number | undefined; } | undefined; connection_status?: string[] | undefined; profile_image_url?: string | undefined; } | null; place: { id: string; full_name: string; geo?: { type: string; bbox: number[]; properties?: any; } | undefined; name?: string | undefined; contained_within?: string[] | undefined; country?: string | undefined; country_code?: string | undefined; place_type?: string | undefined; } | null; poll: { options: { position: number; label: string; votes: number; }[]; id: string; duration_minutes?: number | undefined; end_datetime?: string | undefined; voting_status?: string | undefined; }[] | null; }, { tweet: { id: string; text: string; edit_history_tweet_ids: string[]; text_html: string; text_markdown: string; view_type: "none" | "media" | "link"; attachments?: { media_keys?: string[] | undefined; poll_ids?: string[] | undefined; } | undefined; author_id?: string | undefined; conversation_id?: string | undefined; created_at?: string | undefined; entities?: { annotations?: { type: string; start: number; end: number; probability: number; normalized_text: string; }[] | undefined; urls?: { start: number; end: number; url: string; expanded_url: string; display_url: string; status?: string | number | undefined; unwound_url?: string | undefined; title?: string | undefined; description?: string | undefined; media_key?: string | undefined; images?: { url: string; width: number; height: number; }[] | undefined; }[] | undefined; hashtags?: { start: number; end: number; tag: string; }[] | undefined; cashtags?: { start: number; end: number; tag: string; }[] | undefined; mentions?: { id: string; start: number; end: number; username: string; }[] | undefined; } | undefined; geo?: { coordinates: { type: string; coordinates: [number, number] | null; }; place_id: string; } | undefined; in_reply_to_user_id?: string | undefined; lang?: string | undefined; public_metrics?: { retweet_count: number; reply_count: number; like_count: number; quote_count: number; impression_count: number; bookmark_count?: number | undefined; } | undefined; referenced_tweets?: ({ type: "retweeted" | "quoted" | "replied_to"; id: string; } | undefined)[] | undefined; source?: string | undefined; url_for_link_view?: string | undefined; }; id: string; media: { type: string; media_key: string; url?: string | undefined; width?: number | undefined; height?: number | undefined; public_metrics?: { view_count: number; } | undefined; preview_image_url?: string | undefined; alt_text?: string | undefined; duration_ms?: number | undefined; variants?: { url: string; content_type: string; bit_rate?: number | undefined; }[] | undefined; }[] | null; user: { id: string; username: string; name: string; created_at?: string | undefined; url?: string | undefined; description?: string | undefined; entities?: { url?: { urls: { start: number; end: number; url: string; expanded_url: string; display_url: string; }[]; } | undefined; description?: { urls?: { start: number; end: number; url: string; expanded_url: string; display_url: string; }[] | undefined; hashtags?: { start: number; end: number; tag?: string | undefined; hashtag?: string | undefined; }[] | undefined; cashtags?: { start: number; end: number; tag?: string | undefined; cashtag?: string | undefined; }[] | undefined; mentions?: { start: number; end: number; username?: string | undefined; }[] | undefined; } | undefined; } | undefined; public_metrics?: { like_count?: number | undefined; followers_count?: number | undefined; following_count?: number | undefined; tweet_count?: number | undefined; listed_count?: number | undefined; media_count?: number | undefined; } | undefined; connection_status?: string[] | undefined; profile_image_url?: string | undefined; } | null; place: { id: string; full_name: string; geo?: { type: string; bbox: number[]; properties?: any; } | undefined; name?: string | undefined; contained_within?: string[] | undefined; country?: string | undefined; country_code?: string | undefined; place_type?: string | undefined; } | null; poll: { options: { position: number; label: string; votes: number; }[]; id: string; duration_minutes?: number | undefined; end_datetime?: string | undefined; voting_status?: string | undefined; }[] | null; }>; declare const TweetsLoaderConfigSchema: z.ZodEffects<z.ZodObject<{ /** * An array of Tweet IDs to fetch content for. */ ids: z.ZodArray<z.ZodString, "many">; /** * The method to store the loaded tweets: * - `'default'`: Uses Astro's default KV store (`./store/data-store.json`). * - `'custom'`: Use a custom JSON file path. * - `'both'`: Both default and custom path. * * @default 'default' */ storage: z.ZodDefault<z.ZodEnum<["default", "custom", "both"]>>; /** * The custom output path for storing tweets, either absolute or * relative to the Astro project root. Must end with `.json`. * Required if `storage` is `'custom'` or `'both'`. * * @example * 'src/data/tweets.json' * './src/content/tweets.json' * '/absolute/path/to/tweets.json' */ storePath: z.ZodDefault<z.ZodString>; /** * Whether to remove trailing URLs from the tweet text in the generated `text_html` and `text_markdown`, * typically used for views or referenced tweets. * * @default true */ removeTrailingUrls: z.ZodDefault<z.ZodBoolean>; /** * The type of text to display for links when generating `text_html` and `text_markdown`: * - `'domain-path'`: Shows the link's domain and path. * - `'post-text'`: Uses the link text as shown in the tweet. * * @default 'post-text' */ linkTextType: z.ZodDefault<z.ZodEnum<["domain-path", "post-text"]>>; /** * The way for processing `\n` in `text_html` generation: * - `'none'`: Keep as is. * - `'break'`: Replace consecutive `\n` with `<br>`. * - `'paragraph'`: Wrap paragraphs with `<p>` while removing standalone `\n`. * * @default 'none' */ newlineHandling: z.ZodDefault<z.ZodEnum<["none", "break", "paragraph"]>>; /** * The X app-only Bearer Token for authentication. * * This is optional; by default, it reads from the `X_TOKEN` environment variable. * You may also configure it directly here (not recommended; if you do, ensure it is not exposed * in public code repositories). * * @see * - {@link https://developer.x.com/en/docs/authentication/oauth-2-0/bearer-tokens How to create an X app-only Bearer Token} * - {@link https://docs.astro.build/en/guides/environment-variables/#setting-environment-variables How to store token in Astro project environment variables} */ authToken: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { ids: string[]; storage: "default" | "custom" | "both"; storePath: string; removeTrailingUrls: boolean; linkTextType: "post-text" | "domain-path"; newlineHandling: "none" | "break" | "paragraph"; authToken?: string | undefined; }, { ids: string[]; storage?: "default" | "custom" | "both" | undefined; storePath?: string | undefined; removeTrailingUrls?: boolean | undefined; linkTextType?: "post-text" | "domain-path" | undefined; newlineHandling?: "none" | "break" | "paragraph" | undefined; authToken?: string | undefined; }>, { ids: string[]; storage: "default" | "custom" | "both"; storePath: string; removeTrailingUrls: boolean; linkTextType: "post-text" | "domain-path"; newlineHandling: "none" | "break" | "paragraph"; authToken?: string | undefined; }, { ids: string[]; storage?: "default" | "custom" | "both" | undefined; storePath?: string | undefined; removeTrailingUrls?: boolean | undefined; linkTextType?: "post-text" | "domain-path" | undefined; newlineHandling?: "none" | "break" | "paragraph" | undefined; authToken?: string | undefined; }>; type TweetsLoaderUserConfig = z.input<typeof TweetsLoaderConfigSchema>; /** * Astro loader for loading tweets by ID. * * @see https://github.com/lin-stephanie/astro-loaders/tree/main/packages/astro-loader-tweets */ declare function tweetsLoader(userConfig: Tw