import { z } from 'zod';
declare const SuffixIndexSchema: z.ZodRecord<z.ZodString, z.ZodString>;
declare const DirectoryIndexSchema: z.ZodRecord<z.ZodString, z.ZodString>;
/**
 * TypeInfoSchema has a circular reference (children.types references TypeIndexSchema,
 * which references TypeInfoSchema). We use z.lazy() to defer schema evaluation until
 * runtime to avoid "Cannot access before initialization" errors. z.ZodType<T> provides
 * an explicit type annotation since TypeScript can't infer recursive types properly.
 */
declare const TypeInfoSchema: z.ZodType<{
    id: string;
    name: string;
    directoryName: string;
    suffix?: string;
    strictDirectoryName?: boolean;
    ignoreParsedFullName?: boolean;
    folderContentType?: string;
    folderType?: string;
    xmlElementName?: string;
    uniqueIdElement?: string;
    isAddressable?: boolean;
    unaddressableWithoutParent?: boolean;
    supportsWildcardAndName?: boolean;
    supportsPartialDelete?: boolean;
    aliasFor?: string;
    children?: {
        types: TypeIndex;
        suffixes: SuffixIndex;
        directories?: DirectoryIndex;
    };
    strategies?: {
        adapter: 'mixedContent' | 'matchingContentFile' | 'decomposed' | 'bundle' | 'default';
        transformer?: 'decomposed' | 'staticResource' | 'standard';
        decomposition?: 'topLevel' | 'folderPerType';
    };
}>;
type SuffixIndex = z.infer<typeof SuffixIndexSchema>;
type DirectoryIndex = z.infer<typeof DirectoryIndexSchema>;
type TypeIndex = {
    [typeId: string]: z.infer<typeof TypeInfoSchema>;
};
export declare const MetadataRegistrySchema: z.ZodObject<{
    types: z.ZodType<{
        [typeId: string]: {
            id: string;
            name: string;
            directoryName: string;
            suffix?: string;
            strictDirectoryName?: boolean;
            ignoreParsedFullName?: boolean;
            folderContentType?: string;
            folderType?: string;
            xmlElementName?: string;
            uniqueIdElement?: string;
            isAddressable?: boolean;
            unaddressableWithoutParent?: boolean;
            supportsWildcardAndName?: boolean;
            supportsPartialDelete?: boolean;
            aliasFor?: string;
            children?: {
                types: TypeIndex;
                suffixes: SuffixIndex;
                directories?: DirectoryIndex;
            };
            strategies?: {
                adapter: "mixedContent" | "matchingContentFile" | "decomposed" | "bundle" | "default";
                transformer?: "decomposed" | "staticResource" | "standard";
                decomposition?: "topLevel" | "folderPerType";
            };
        };
    }, unknown, z.core.$ZodTypeInternals<{
        [typeId: string]: {
            id: string;
            name: string;
            directoryName: string;
            suffix?: string;
            strictDirectoryName?: boolean;
            ignoreParsedFullName?: boolean;
            folderContentType?: string;
            folderType?: string;
            xmlElementName?: string;
            uniqueIdElement?: string;
            isAddressable?: boolean;
            unaddressableWithoutParent?: boolean;
            supportsWildcardAndName?: boolean;
            supportsPartialDelete?: boolean;
            aliasFor?: string;
            children?: {
                types: TypeIndex;
                suffixes: SuffixIndex;
                directories?: DirectoryIndex;
            };
            strategies?: {
                adapter: "mixedContent" | "matchingContentFile" | "decomposed" | "bundle" | "default";
                transformer?: "decomposed" | "staticResource" | "standard";
                decomposition?: "topLevel" | "folderPerType";
            };
        };
    }, unknown>>;
    suffixes: z.ZodRecord<z.ZodString, z.ZodString>;
    strictDirectoryNames: z.ZodRecord<z.ZodString, z.ZodString>;
    childTypes: z.ZodRecord<z.ZodString, z.ZodString>;
}, z.core.$strip>;
export {};
