///
import { BaseSchema, SchemaContext, defineCollection as defineCollection$1 } from 'astro:content';
export { BaseSchema } from 'astro:content';
import { ZodIntersection } from 'astro/zod';
/** Type that extends a collection's default schema with an optional, user-defined schema. */
type ExtendedSchema = [
T
] extends [never] ? S : T extends BaseSchema ? ZodIntersection : S;
type CollectionConfig = ReturnType>;
interface CollectionExtensionOptions {
extends?: E | ((context: SchemaContext) => E);
}
type ExtendedCollection = ExtendedSchema extends BaseSchema ? CollectionConfig> : CollectionConfig;
type FancyCollection = (options?: CollectionExtensionOptions) => ExtendedCollection;
/**
* Define a collection from an integration that can be extended by users of the integration.
*
* Also known as a FancyCollection 💅
*/
declare function defineCollection(config: CollectionConfig): FancyCollection;
/**
* Guard checking that a value is a FancyCollection.
*/
declare function isFancyCollection(something: any): something is FancyCollection;
/**
* Extract the original FancyCollection from a value, if it was derived from one.
*
* If the value was not derived from a FancyCollection, return null;
*/
declare function tryGetOriginalFancyCollection(something: any): FancyCollection | null;
export { type CollectionExtensionOptions, type ExtendedCollection, type ExtendedSchema, type FancyCollection, defineCollection, isFancyCollection, tryGetOriginalFancyCollection };