/**
 * Validate a bundle's facets and return a structured report.
 *
 * v1 covers four facets: catalog (derived-vs-scan consistency), schema
 * (JSON Schema validity), examples (parse via @specverse/engines/parser),
 * tests (inventory only — execution remains vitest's job). Behaviour,
 * inference, conventions, generators arrive in later iterations.
 *
 * Programmatic API for now. A `spv validate-bundle` CLI wrapper is a
 * separate concern once the underlying validation shape settles.
 *
 * See: specverse-self/docs/proposals/PLUGGABLE-BUNDLE-MODEL.md
 */
export type FacetName = 'catalog' | 'schema' | 'examples' | 'tests' | 'docs' | 'behaviour';
export interface FacetIssue {
    severity: 'error' | 'warning';
    message: string;
    location?: string;
}
export interface FacetResult {
    facet: FacetName;
    status: 'pass' | 'fail' | 'skip';
    duration: number;
    issues: FacetIssue[];
    metrics?: Record<string, number | string>;
}
export interface BundleReport {
    bundle: string;
    path: string;
    facets: FacetResult[];
    totals: {
        pass: number;
        fail: number;
        skip: number;
    };
    duration: number;
}
export interface WorkspaceReport {
    bundles: BundleReport[];
    totals: {
        pass: number;
        fail: number;
        skip: number;
    };
    duration: number;
}
export interface ValidateOptions {
    /** Override schema path. Defaults to @specverse/entities composed schema. */
    schemaPath?: string;
}
/** Validate one bundle. */
export declare function validateBundle(bundleDir: string, options?: ValidateOptions): Promise<BundleReport>;
/** Validate several bundles. Reports aggregate. */
export declare function validateBundles(bundleDirs: string[], options?: ValidateOptions): Promise<WorkspaceReport>;
//# sourceMappingURL=validate.d.ts.map