export type MigrationValidationIssue = { componentPath: string; component: string; uid: string | null; message: string; }; export type ComponentRule = { forbiddenFields?: string[]; requiredFields?: string[]; forbiddenTopLevelKeys?: string[]; requiredTopLevelKeys?: string[]; checkItemBasis?: boolean; checkEmbedSizes?: boolean; }; export type WrapperNormalizationRule = { wrapperToBase: Record; }; export type RuleSetConfig = { ruleSetName: string; rules: Record; noIssuesMessage: string; wrapperNormalization?: WrapperNormalizationRule; }; export type MigrationValidationDataFn = (args: { data: unknown; isDebug?: boolean; }) => MigrationValidationReport | Promise; export type PreparedMigrationValidator = { id: string; name: string; ruleSet?: RuleSetConfig; validateData?: MigrationValidationDataFn; sourcePath: string; }; export type MigrationValidationReport = { ok: boolean; issueCount: number; issues: MigrationValidationIssue[]; }; export declare class MigrationValidationFailedError extends Error { migrationConfig: string; validatorId: string; validatorName: string; issueCount: number; issues: MigrationValidationIssue[]; constructor({ migrationConfig, validatorId, validatorName, issueCount, issues, }: { migrationConfig: string; validatorId: string; validatorName: string; issueCount: number; issues: MigrationValidationIssue[]; }); } export declare const discoverMigrationValidatorForMigrationFile: ({ migrationConfigName, migrationConfigPath, }: { migrationConfigName: string; migrationConfigPath: string; }) => PreparedMigrationValidator | null; export declare const validateRuleSetData: ({ data, ruleSet, isDebug, }: { data: unknown; ruleSet: RuleSetConfig; isDebug?: boolean; }) => MigrationValidationReport; export declare const runPreparedMigrationValidator: ({ validator, data, isDebug, }: { validator: PreparedMigrationValidator; data: unknown; isDebug?: boolean; }) => MigrationValidationReport;