/**
 * Types for the pluggable-bundle catalog subsystem.
 *
 * A "bundle" is a self-contained package of schema + implementation + content
 * (examples, tests, behaviour specs). This module's job is producing a
 * `CatalogEntry[]` summary of a bundle's content by scanning its content
 * facet directories (`__examples__/`, `__tests__/`, `__behaviour__/`).
 *
 * See: specverse-self/docs/proposals/PLUGGABLE-BUNDLE-MODEL.md
 */
/**
 * CatalogEntry and CatalogCategory are defined canonically in
 * `@specverse/types/entity-module` (which also aliases them as
 * `EntityDocReference` and `EntityTestReference` for consumer naming
 * intent). Re-exported here so consumers who import from
 * `@specverse/engines/bundles` have everything they need from one path.
 */
import type { CatalogCategory, CatalogEntry } from '@specverse/types';
export type { CatalogCategory, CatalogEntry } from '@specverse/types';
/** A content facet that the catalog scanner knows how to walk. */
export type FacetName = '__examples__' | '__tests__' | '__behaviour__';
/**
 * How a facet is scanned. `glob` is a `fast-glob`-compatible pattern relative
 * to the facet directory; `category` is assigned to every entry the scanner
 * emits for this facet.
 */
export interface FacetPattern {
    glob: string;
    category: CatalogCategory;
}
/** Configuration for `deriveCatalog`. All fields are optional. */
export interface DeriveCatalogOptions {
    /**
     * Mixed-mode entries: hand-written references the scanner can't discover
     * (e.g. external guides outside the bundle). Appended to the derived set
     * with no de-duplication.
     */
    additionalReferences?: CatalogEntry[];
    /**
     * Override scanning behaviour per facet. Default is the production table
     * exported as `DEFAULT_FACETS`. Use this only when a bundle deviates from
     * the standard layout.
     */
    facets?: Partial<Record<FacetName, FacetPattern>>;
}
/**
 * Default facet patterns used when `DeriveCatalogOptions.facets` isn't
 * provided. Tight patterns (extension-specific) so non-content files (e.g. a
 * stray `grammar.yaml` physically nested inside `__behaviour__/`) cannot leak
 * into the catalog regardless of directory depth.
 */
export declare const DEFAULT_FACETS: Record<FacetName, FacetPattern>;
//# sourceMappingURL=types.d.ts.map