import type { CapabilityRegistry } from '../capabilities';
import type { DataViewRegistry } from '../data-views';
import type { KnowledgeSourceConfig } from '../knowledge/source';
import type { KnowledgeSpaceRegistry } from '../knowledge/spec';
import type { BlueprintTranslationCatalog, PlatformTranslationCatalog } from '../translations/catalog';
import type { WorkflowRegistry } from '../workflow/spec';
import type { AppConfigIntegrationConnection, AppConfigIntegrationRegistry } from './integrations';
import type { ResolvedAppConfig } from './runtime';
import type { AppBlueprintSpec, TenantAppConfig } from './spec';
export type ValidationSeverity = 'error' | 'warning' | 'info';
export interface ValidationIssue {
    code: string;
    severity: ValidationSeverity;
    path: string;
    message: string;
    suggestion?: string;
    docsUrl?: string;
}
export interface ValidationResult {
    valid: boolean;
    errors: ValidationIssue[];
    warnings: ValidationIssue[];
    info: ValidationIssue[];
}
export declare class AppConfigValidationError extends Error {
    readonly result: ValidationResult;
    constructor(message: string, result: ValidationResult);
}
export interface ValidationContext {
    integrationSpecs?: AppConfigIntegrationRegistry;
    knowledgeSpaces?: KnowledgeSpaceRegistry;
    knowledgeSources?: KnowledgeSourceConfig[];
    capabilities?: CapabilityRegistry;
    dataViews?: DataViewRegistry;
    workflows?: WorkflowRegistry;
    tenantConnections?: AppConfigIntegrationConnection[];
    existingConfigs?: TenantAppConfig[];
    translationCatalogs?: {
        platform?: PlatformTranslationCatalog | PlatformTranslationCatalog[] | undefined;
        blueprint?: BlueprintTranslationCatalog | BlueprintTranslationCatalog[] | undefined;
    };
}
export declare function validateConfig(blueprint: AppBlueprintSpec, tenant: TenantAppConfig, context?: ValidationContext): ValidationResult;
export declare function validateBlueprint(blueprint: AppBlueprintSpec, context?: ValidationContext): ValidationResult;
export declare function validateTenantConfig(blueprint: AppBlueprintSpec, tenant: TenantAppConfig, context?: ValidationContext): ValidationResult;
export declare function validateResolvedConfig(blueprint: AppBlueprintSpec, resolved: ResolvedAppConfig, context?: ValidationContext): ValidationResult;
export declare function assertBlueprintValid(blueprint: AppBlueprintSpec, context?: ValidationContext): void;
export declare function assertTenantConfigValid(blueprint: AppBlueprintSpec, tenant: TenantAppConfig, context?: ValidationContext): void;
export declare function assertResolvedConfigValid(blueprint: AppBlueprintSpec, resolved: ResolvedAppConfig, context?: ValidationContext): void;
