/** Registry for collection definitions, allowing dynamic registration and lookup. */
export class CollectionRegistry {
    collections = new Map();
    /** Register a collection definition. */
    register(definition) {
        if (this.collections.has(definition.slug)) {
            throw new Error(`Collection "${definition.slug}" is already registered`);
        }
        this.collections.set(definition.slug, definition);
    }
    /** Retrieve a collection by slug. */
    get(slug) {
        return this.collections.get(slug);
    }
    /** Return all registered collection definitions. */
    getAll() {
        return Array.from(this.collections.values());
    }
    /** Check whether a collection is registered. */
    has(slug) {
        return this.collections.has(slug);
    }
    /** Remove a collection from the registry. */
    unregister(slug) {
        return this.collections.delete(slug);
    }
}
export const collectionRegistry = new CollectionRegistry();
export { blogPostCollection, caseStudyCollection, portfolioCollection, serviceCollection, locationCollection, teamMemberCollection, faqCollection, testimonialCollection, getTemplatesForCollection, } from './presets.js';
//# sourceMappingURL=index.js.map