import { z } from "zod/v3"; export type Source = z.infer; /** An RSS source */ declare const SourceSchema: z.ZodObject<{ /** The URL of an RSS feed */ url: z.ZodString; /** A title to describe the feed */ title: z.ZodString; /** Takes a entry preview and returns whether or not it should be displayed */ filter: z.ZodOptional, z.ZodBoolean>>; }, "strip", z.ZodTypeAny, { url: string; title: string; filter?: ((args_0: string, ...args: unknown[]) => boolean) | undefined; }, { url: string; title: string; filter?: ((args_0: string, ...args: unknown[]) => boolean) | undefined; }>; export type CacheConfiguration = z.infer; /** Configuration for the cache */ declare const CacheConfigurationSchema: z.ZodObject<{ /** How long to cache a result for */ cache_duration_minutes: z.ZodDefault; /** The location of a file to use as a cache */ cache_file: z.ZodDefault; }, "strip", z.ZodTypeAny, { cache_duration_minutes: number; cache_file: string; }, { cache_duration_minutes?: number | undefined; cache_file?: string | undefined; }>; export type Configuration = z.infer; /** A configuration object with caching possibly configured */ declare const ConfigurationSchema: z.ZodObject<{ /** A list of sources to fetch */ sources: z.ZodArray, z.ZodBoolean>>; }, "strip", z.ZodTypeAny, { url: string; title: string; filter?: ((args_0: string, ...args: unknown[]) => boolean) | undefined; }, { url: string; title: string; filter?: ((args_0: string, ...args: unknown[]) => boolean) | undefined; }>, "many">; /** Return the n latest updates from the source list. */ number: z.ZodDefault; /** How many words the preview field should be truncated to in characters after HTML has been sanitized and parsed. */ truncate: z.ZodDefault; /** Configuration for the cache */ cache: z.ZodOptional; /** The location of a file to use as a cache */ cache_file: z.ZodDefault; }, "strip", z.ZodTypeAny, { cache_duration_minutes: number; cache_file: string; }, { cache_duration_minutes?: number | undefined; cache_file?: string | undefined; }>>; /** Randomize the output order */ shuffle: z.ZodOptional>; }, "strip", z.ZodTypeAny, { sources: { url: string; title: string; filter?: ((args_0: string, ...args: unknown[]) => boolean) | undefined; }[]; number: number; truncate: number; cache?: { cache_duration_minutes: number; cache_file: string; } | undefined; shuffle?: boolean | undefined; }, { sources: { url: string; title: string; filter?: ((args_0: string, ...args: unknown[]) => boolean) | undefined; }[]; number?: number | undefined; truncate?: number | undefined; cache?: { cache_duration_minutes?: number | undefined; cache_file?: string | undefined; } | undefined; shuffle?: boolean | undefined; }>; export type CachedConfiguration = z.infer; /** A configuration object with caching definitely configured */ export declare const CachedConfigurationSchema: z.ZodObject<{ sources: z.ZodArray, z.ZodBoolean>>; }, "strip", z.ZodTypeAny, { url: string; title: string; filter?: ((args_0: string, ...args: unknown[]) => boolean) | undefined; }, { url: string; title: string; filter?: ((args_0: string, ...args: unknown[]) => boolean) | undefined; }>, "many">; number: z.ZodDefault; truncate: z.ZodDefault; shuffle: z.ZodOptional>; } & { cache: z.ZodObject<{ /** How long to cache a result for */ cache_duration_minutes: z.ZodDefault; /** The location of a file to use as a cache */ cache_file: z.ZodDefault; }, "strip", z.ZodTypeAny, { cache_duration_minutes: number; cache_file: string; }, { cache_duration_minutes?: number | undefined; cache_file?: string | undefined; }>; }, "strip", z.ZodTypeAny, { sources: { url: string; title: string; filter?: ((args_0: string, ...args: unknown[]) => boolean) | undefined; }[]; number: number; truncate: number; shuffle?: boolean | undefined; cache: { cache_duration_minutes: number; cache_file: string; }; }, { sources: { url: string; title: string; filter?: ((args_0: string, ...args: unknown[]) => boolean) | undefined; }[]; number?: number | undefined; truncate?: number | undefined; shuffle?: boolean | undefined; cache: { cache_duration_minutes?: number | undefined; cache_file?: string | undefined; }; }>; export type ResultEntry = z.infer; /** A single entry from an RSS feed */ declare const ResultEntrySchema: z.ZodObject<{ /** The title of the entry */ title: z.ZodString; /** A direct link to the entry */ url: z.ZodString; /** The date of the entry */ date: z.ZodDate; /** The source the entry is from */ source: z.ZodObject<{ /** The URL of an RSS feed */ url: z.ZodString; /** A title to describe the feed */ title: z.ZodString; /** Takes a entry preview and returns whether or not it should be displayed */ filter: z.ZodOptional, z.ZodBoolean>>; }, "strip", z.ZodTypeAny, { url: string; title: string; filter?: ((args_0: string, ...args: unknown[]) => boolean) | undefined; }, { url: string; title: string; filter?: ((args_0: string, ...args: unknown[]) => boolean) | undefined; }>; /** A preview of the entry. This may contain sanitized HTML. */ preview: z.ZodOptional; }, "strip", z.ZodTypeAny, { title: string; url: string; date: Date; source: { url: string; title: string; filter?: ((args_0: string, ...args: unknown[]) => boolean) | undefined; }; preview?: string | undefined; }, { title: string; url: string; date: Date; source: { url: string; title: string; filter?: ((args_0: string, ...args: unknown[]) => boolean) | undefined; }; preview?: string | undefined; }>; export type Result = z.infer; /** A list of results */ export declare const ResultSchema: z.ZodArray, z.ZodBoolean>>; }, "strip", z.ZodTypeAny, { url: string; title: string; filter?: ((args_0: string, ...args: unknown[]) => boolean) | undefined; }, { url: string; title: string; filter?: ((args_0: string, ...args: unknown[]) => boolean) | undefined; }>; /** A preview of the entry. This may contain sanitized HTML. */ preview: z.ZodOptional; }, "strip", z.ZodTypeAny, { title: string; url: string; date: Date; source: { url: string; title: string; filter?: ((args_0: string, ...args: unknown[]) => boolean) | undefined; }; preview?: string | undefined; }, { title: string; url: string; date: Date; source: { url: string; title: string; filter?: ((args_0: string, ...args: unknown[]) => boolean) | undefined; }; preview?: string | undefined; }>, "many">; export type CacheEntry = z.infer; /** A single cache entry */ export declare const CacheEntrySchema: z.ZodObject<{ /** The time a source was last checked */ timestamp: z.ZodDate; /** The data from the source */ data: z.ZodObject<{ /** The title of the entry */ title: z.ZodString; /** A direct link to the entry */ url: z.ZodString; /** The date of the entry */ date: z.ZodDate; /** The source the entry is from */ source: z.ZodObject<{ /** The URL of an RSS feed */ url: z.ZodString; /** A title to describe the feed */ title: z.ZodString; /** Takes a entry preview and returns whether or not it should be displayed */ filter: z.ZodOptional, z.ZodBoolean>>; }, "strip", z.ZodTypeAny, { url: string; title: string; filter?: ((args_0: string, ...args: unknown[]) => boolean) | undefined; }, { url: string; title: string; filter?: ((args_0: string, ...args: unknown[]) => boolean) | undefined; }>; /** A preview of the entry. This may contain sanitized HTML. */ preview: z.ZodOptional; }, "strip", z.ZodTypeAny, { title: string; url: string; date: Date; source: { url: string; title: string; filter?: ((args_0: string, ...args: unknown[]) => boolean) | undefined; }; preview?: string | undefined; }, { title: string; url: string; date: Date; source: { url: string; title: string; filter?: ((args_0: string, ...args: unknown[]) => boolean) | undefined; }; preview?: string | undefined; }>; }, "strip", z.ZodTypeAny, { timestamp: Date; data: { title: string; url: string; date: Date; source: { url: string; title: string; filter?: ((args_0: string, ...args: unknown[]) => boolean) | undefined; }; preview?: string | undefined; }; }, { timestamp: Date; data: { title: string; url: string; date: Date; source: { url: string; title: string; filter?: ((args_0: string, ...args: unknown[]) => boolean) | undefined; }; preview?: string | undefined; }; }>; export type Cache = z.infer; /** A mapping of source URLs to cache entries */ export declare const CacheSchema: z.ZodRecord, z.ZodBoolean>>; }, "strip", z.ZodTypeAny, { url: string; title: string; filter?: ((args_0: string, ...args: unknown[]) => boolean) | undefined; }, { url: string; title: string; filter?: ((args_0: string, ...args: unknown[]) => boolean) | undefined; }>; /** A preview of the entry. This may contain sanitized HTML. */ preview: z.ZodOptional; }, "strip", z.ZodTypeAny, { title: string; url: string; date: Date; source: { url: string; title: string; filter?: ((args_0: string, ...args: unknown[]) => boolean) | undefined; }; preview?: string | undefined; }, { title: string; url: string; date: Date; source: { url: string; title: string; filter?: ((args_0: string, ...args: unknown[]) => boolean) | undefined; }; preview?: string | undefined; }>; }, "strip", z.ZodTypeAny, { timestamp: Date; data: { title: string; url: string; date: Date; source: { url: string; title: string; filter?: ((args_0: string, ...args: unknown[]) => boolean) | undefined; }; preview?: string | undefined; }; }, { timestamp: Date; data: { title: string; url: string; date: Date; source: { url: string; title: string; filter?: ((args_0: string, ...args: unknown[]) => boolean) | undefined; }; preview?: string | undefined; }; }>>; /** The expected format fetched RSS feed entries */ export declare const FeedEntrySchema: z.ZodEffects; pubDate: z.ZodOptional; content: z.ZodOptional; contentSnippet: z.ZodOptional; "content:encoded": z.ZodOptional; description: z.ZodOptional; }, "strip", z.ZodTypeAny, { title: string; link: string; isoDate?: Date | undefined; pubDate?: Date | undefined; content?: string | undefined; contentSnippet?: string | undefined; "content:encoded"?: string | undefined; description?: string | undefined; }, { title: string; link: string; isoDate?: Date | undefined; pubDate?: Date | undefined; content?: string | undefined; contentSnippet?: string | undefined; "content:encoded"?: string | undefined; description?: string | undefined; }>, { title: string; link: string; date: Date; content: string | undefined; contentSnippet: string | undefined; description: string | undefined; "content:encoded": string | undefined; }, { title: string; link: string; isoDate?: Date | undefined; pubDate?: Date | undefined; content?: string | undefined; contentSnippet?: string | undefined; "content:encoded"?: string | undefined; description?: string | undefined; }>; export {}; //# sourceMappingURL=types.d.ts.map