import { z } from 'zod';
import { Language } from '../localization/util.mjs';

type News = {
    title: string;
    date: Date;
    description: (string | URL)[];
    externalResource?: URL;
    keys: string[];
};
type LocalizedNews = Record<Language, News[]>;
declare const newsSchema: z.ZodEffects<z.ZodObject<{
    title: z.ZodString;
    description: z.ZodString;
    date: z.ZodString;
    image: z.ZodOptional<z.ZodString>;
    externalResource: z.ZodOptional<z.ZodString>;
    keys: z.ZodArray<z.ZodString, "many">;
}, "strip", z.ZodTypeAny, {
    title?: string;
    description?: string;
    date?: string;
    image?: string;
    keys?: string[];
    externalResource?: string;
}, {
    title?: string;
    description?: string;
    date?: string;
    image?: string;
    keys?: string[];
    externalResource?: string;
}>, News, {
    title?: string;
    description?: string;
    date?: string;
    image?: string;
    keys?: string[];
    externalResource?: string;
}>;
declare const newsListSchema: z.ZodArray<z.ZodEffects<z.ZodObject<{
    title: z.ZodString;
    description: z.ZodString;
    date: z.ZodString;
    image: z.ZodOptional<z.ZodString>;
    externalResource: z.ZodOptional<z.ZodString>;
    keys: z.ZodArray<z.ZodString, "many">;
}, "strip", z.ZodTypeAny, {
    title?: string;
    description?: string;
    date?: string;
    image?: string;
    keys?: string[];
    externalResource?: string;
}, {
    title?: string;
    description?: string;
    date?: string;
    image?: string;
    keys?: string[];
    externalResource?: string;
}>, News, {
    title?: string;
    description?: string;
    date?: string;
    image?: string;
    keys?: string[];
    externalResource?: string;
}>, "many">;
declare const localizedNewsSchema: z.ZodRecord<z.ZodEnum<["en", "de"]>, z.ZodArray<z.ZodEffects<z.ZodObject<{
    title: z.ZodString;
    description: z.ZodString;
    date: z.ZodString;
    image: z.ZodOptional<z.ZodString>;
    externalResource: z.ZodOptional<z.ZodString>;
    keys: z.ZodArray<z.ZodString, "many">;
}, "strip", z.ZodTypeAny, {
    title?: string;
    description?: string;
    date?: string;
    image?: string;
    keys?: string[];
    externalResource?: string;
}, {
    title?: string;
    description?: string;
    date?: string;
    image?: string;
    keys?: string[];
    externalResource?: string;
}>, News, {
    title?: string;
    description?: string;
    date?: string;
    image?: string;
    keys?: string[];
    externalResource?: string;
}>, "many">>;
declare const filterNews: (localizedNews: News[], requiredKeys: string[]) => News[];

export { type LocalizedNews, type News, filterNews, localizedNewsSchema, newsListSchema, newsSchema };
