import { z } from 'zod';
export interface RssFeedEntry {
    title: string;
    pubDate: string;
    link?: string;
    comments: string;
    description?: string;
}
export type Channel = (typeof channels)[number];
export declare const channels: readonly ["lts", "stable", "beta", "unstable"];
export declare const channelSchema: z.ZodEnum<{
    lts: "lts";
    stable: "stable";
    beta: "beta";
    unstable: "unstable";
}>;
export type ArtifactType = (typeof artifactTypes)[number];
export declare const artifactTypes: readonly ["ide", "runtime"];
export declare const rssFeedSchema: z.ZodObject<{
    rss: z.ZodObject<{
        channel: z.ZodObject<{
            title: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
            description: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
            link: z.ZodString;
            item: z.ZodPipe<z.ZodTransform<any[], unknown>, z.ZodArray<z.ZodObject<{
                title: z.ZodString;
                pubDate: z.ZodString;
                link: z.ZodOptional<z.ZodString>;
                comments: z.ZodString;
                description: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
            }, z.core.$strip>>>;
        }, z.core.$strip>;
    }, z.core.$strip>;
}, z.core.$strip>;
export type GameMakerArtifact = z.infer<typeof gameMakerArtifactSchema>;
export declare const gameMakerArtifactSchema: z.ZodObject<{
    type: z.ZodEnum<{
        ide: "ide";
        runtime: "runtime";
    }>;
    version: z.ZodString;
    channel: z.ZodEnum<{
        lts: "lts";
        stable: "stable";
        beta: "beta";
        unstable: "unstable";
    }>;
    summary: z.ZodOptional<z.ZodString>;
    feedUrl: z.ZodString;
    publishedAt: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
    link: z.ZodOptional<z.ZodString>;
    notesUrl: z.ZodString;
}, z.core.$strip>;
export type GameMakerArtifactWithNotes = z.infer<typeof gameMakerArtifactWithNotesSchema>;
export declare const gameMakerArtifactWithNotesSchema: z.ZodObject<{
    type: z.ZodEnum<{
        ide: "ide";
        runtime: "runtime";
    }>;
    version: z.ZodString;
    channel: z.ZodEnum<{
        lts: "lts";
        stable: "stable";
        beta: "beta";
        unstable: "unstable";
    }>;
    summary: z.ZodOptional<z.ZodString>;
    feedUrl: z.ZodString;
    publishedAt: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
    link: z.ZodOptional<z.ZodString>;
    notesUrl: z.ZodString;
    notes: z.ZodObject<{
        since: z.ZodNullable<z.ZodString>;
        groups: z.ZodArray<z.ZodObject<{
            title: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
            changes: z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
        }, z.core.$strip>>;
    }, z.core.$strip>;
}, z.core.$strip>;
export type GameMakerReleaseWithNotes = z.infer<typeof gameMakerReleaseWithNotesSchema>;
export declare const gameMakerReleaseWithNotesSchema: z.ZodObject<{
    channel: z.ZodEnum<{
        lts: "lts";
        stable: "stable";
        beta: "beta";
        unstable: "unstable";
    }>;
    publishedAt: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
    summary: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
    ide: z.ZodObject<{
        channel: z.ZodEnum<{
            lts: "lts";
            stable: "stable";
            beta: "beta";
            unstable: "unstable";
        }>;
        link: z.ZodOptional<z.ZodString>;
        type: z.ZodEnum<{
            ide: "ide";
            runtime: "runtime";
        }>;
        version: z.ZodString;
        feedUrl: z.ZodString;
        publishedAt: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
        notesUrl: z.ZodString;
        notes: z.ZodObject<{
            since: z.ZodNullable<z.ZodString>;
            groups: z.ZodArray<z.ZodObject<{
                title: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
                changes: z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
            }, z.core.$strip>>;
        }, z.core.$strip>;
    }, z.core.$strip>;
    runtime: z.ZodObject<{
        channel: z.ZodEnum<{
            lts: "lts";
            stable: "stable";
            beta: "beta";
            unstable: "unstable";
        }>;
        link: z.ZodOptional<z.ZodString>;
        type: z.ZodEnum<{
            ide: "ide";
            runtime: "runtime";
        }>;
        version: z.ZodString;
        feedUrl: z.ZodString;
        publishedAt: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
        notesUrl: z.ZodString;
        notes: z.ZodObject<{
            since: z.ZodNullable<z.ZodString>;
            groups: z.ZodArray<z.ZodObject<{
                title: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
                changes: z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
            }, z.core.$strip>>;
        }, z.core.$strip>;
    }, z.core.$strip>;
}, z.core.$strip>;
export type GameMakerRelease = z.infer<typeof gameMakerReleaseSchema>;
export declare const gameMakerReleaseSchema: z.ZodObject<{
    channel: z.ZodEnum<{
        lts: "lts";
        stable: "stable";
        beta: "beta";
        unstable: "unstable";
    }>;
    publishedAt: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
    summary: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
    ide: z.ZodObject<{
        channel: z.ZodEnum<{
            lts: "lts";
            stable: "stable";
            beta: "beta";
            unstable: "unstable";
        }>;
        link: z.ZodOptional<z.ZodString>;
        type: z.ZodEnum<{
            ide: "ide";
            runtime: "runtime";
        }>;
        version: z.ZodString;
        feedUrl: z.ZodString;
        publishedAt: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
        notesUrl: z.ZodString;
    }, z.core.$strip>;
    runtime: z.ZodObject<{
        channel: z.ZodEnum<{
            lts: "lts";
            stable: "stable";
            beta: "beta";
            unstable: "unstable";
        }>;
        link: z.ZodOptional<z.ZodString>;
        type: z.ZodEnum<{
            ide: "ide";
            runtime: "runtime";
        }>;
        version: z.ZodString;
        feedUrl: z.ZodString;
        publishedAt: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
        notesUrl: z.ZodString;
    }, z.core.$strip>;
}, z.core.$strip>;
export type RawReleaseNote = z.infer<typeof rawReleaseNoteSchema>;
export declare const rawReleaseNoteSchema: z.ZodObject<{
    type: z.ZodOptional<z.ZodEnum<{
        ide: "ide";
        runtime: "runtime";
    }>>;
    version: z.ZodString;
    release_notes: z.ZodArray<z.ZodString>;
}, z.core.$strict>;
export type RawReleaseNotesCache = Record<string, RawReleaseNote>;
export declare const rawReleaseNotesCacheSchema: z.ZodRecord<z.ZodString, z.ZodObject<{
    type: z.ZodOptional<z.ZodEnum<{
        ide: "ide";
        runtime: "runtime";
    }>>;
    version: z.ZodString;
    release_notes: z.ZodArray<z.ZodString>;
}, z.core.$strict>>;
//# sourceMappingURL=feeds.types.d.ts.map