import { z } from 'zod';
import type { AddOn, Starter } from './types.js';
declare const registrySchema: z.ZodObject<{
    templates: z.ZodOptional<z.ZodArray<z.ZodObject<{
        name: z.ZodString;
        description: z.ZodString;
        url: z.ZodString;
        banner: z.ZodOptional<z.ZodString>;
        mode: z.ZodString;
        framework: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        description: string;
        name: string;
        url: string;
        framework: string;
        mode: string;
        banner?: string | undefined;
    }, {
        description: string;
        name: string;
        url: string;
        framework: string;
        mode: string;
        banner?: string | undefined;
    }>, "many">>;
    starters: z.ZodOptional<z.ZodArray<z.ZodObject<{
        name: z.ZodString;
        description: z.ZodString;
        url: z.ZodString;
        banner: z.ZodOptional<z.ZodString>;
        mode: z.ZodString;
        framework: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        description: string;
        name: string;
        url: string;
        framework: string;
        mode: string;
        banner?: string | undefined;
    }, {
        description: string;
        name: string;
        url: string;
        framework: string;
        mode: string;
        banner?: string | undefined;
    }>, "many">>;
    'add-ons': z.ZodOptional<z.ZodArray<z.ZodObject<{
        name: z.ZodString;
        description: z.ZodString;
        url: z.ZodString;
        modes: z.ZodArray<z.ZodString, "many">;
        framework: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        description: string;
        name: string;
        url: string;
        framework: string;
        modes: string[];
    }, {
        description: string;
        name: string;
        url: string;
        framework: string;
        modes: string[];
    }>, "many">>;
}, "strip", z.ZodTypeAny, {
    'add-ons'?: {
        description: string;
        name: string;
        url: string;
        framework: string;
        modes: string[];
    }[] | undefined;
    templates?: {
        description: string;
        name: string;
        url: string;
        framework: string;
        mode: string;
        banner?: string | undefined;
    }[] | undefined;
    starters?: {
        description: string;
        name: string;
        url: string;
        framework: string;
        mode: string;
        banner?: string | undefined;
    }[] | undefined;
}, {
    'add-ons'?: {
        description: string;
        name: string;
        url: string;
        framework: string;
        modes: string[];
    }[] | undefined;
    templates?: {
        description: string;
        name: string;
        url: string;
        framework: string;
        mode: string;
        banner?: string | undefined;
    }[] | undefined;
    starters?: {
        description: string;
        name: string;
        url: string;
        framework: string;
        mode: string;
        banner?: string | undefined;
    }[] | undefined;
}>;
export type Registry = z.infer<typeof registrySchema>;
export declare function getRawRegistry(registryUrl?: string): Promise<Registry | undefined>;
export declare function getRegistryAddOns(registryUrl?: string): Promise<Array<AddOn>>;
export declare function getRegistryStarters(registryUrl?: string): Promise<Array<Starter>>;
export declare function getRegistry(registryUrl?: string): Promise<{
    addOns: Array<AddOn>;
    starters: Array<Starter>;
}>;
export {};
