import type { ExampleSpec } from './types';
export interface ExampleValidationError {
    /** Example key if available */
    exampleKey?: string;
    /** Error message */
    message: string;
    /** Path within the spec where error occurred */
    path?: string;
    /** Error code for programmatic handling */
    code?: string;
}
export interface ExampleValidationWarning {
    /** Example key if available */
    exampleKey?: string;
    /** Warning message */
    message: string;
    /** Path within the spec where warning applies */
    path?: string;
}
export type ValidateExamplesResult = {
    ok: true;
    examples: ExampleSpec[];
} | {
    ok: false;
    errors: ExampleValidationError[];
};
export interface ValidateExampleResult {
    valid: boolean;
    errors: ExampleValidationError[];
    warnings: ExampleValidationWarning[];
}
/**
 * Validate a single ExampleSpec.
 *
 * @param example - The example to validate
 * @returns Validation result with errors and warnings
 */
export declare function validateExample(example: unknown): ValidateExampleResult;
/**
 * Validate multiple examples, checking for duplicates.
 *
 * @param examples - Array of examples to validate
 * @returns Validation result with all valid examples or errors
 */
export declare function validateExamples(examples: ExampleSpec[]): ValidateExamplesResult;
export interface CrossValidationContext {
    /** Available feature keys */
    featureKeys?: Set<string>;
    /** Available blueprint keys */
    blueprintKeys?: Set<string>;
    /** Available package names in workspace */
    packageNames?: Set<string>;
}
/**
 * Validate example references against external registries.
 *
 * @param example - Example to validate
 * @param context - External context for cross-reference validation
 * @returns Validation result with errors and warnings
 */
export declare function validateExampleReferences(example: ExampleSpec, context: CrossValidationContext): ValidateExampleResult;
