import type { ValidationIssue, ValidationSettings } from '../types'; import { BestPracticeValidator } from '../validators/best-practice-validator'; import { CustomRuleExecutor, InvariantExecutor, MetadataExecutor, ProfileExecutor, ReferenceExecutor, StructuralExecutor, TerminologyExecutor } from './executors'; import type { StructureDefinition } from './structure-definition-types'; import type { ReferenceResolver } from '../validators/slicing-validator'; export interface SingleResourceValidationInput { resource: any; profileUrl: string; fhirVersion: 'R4' | 'R5' | 'R6'; structureDef: StructureDefinition; strictMode: boolean; settings?: ValidationSettings; profileFallbackIssue?: ValidationIssue | null; contextQuestionnaire?: any; referenceResolver?: ReferenceResolver | null; organizationId?: number; } export interface SingleResourceValidationDeps { structuralExecutor: StructuralExecutor; profileExecutor: ProfileExecutor; terminologyExecutor: TerminologyExecutor; invariantExecutor: InvariantExecutor; customRuleExecutor: CustomRuleExecutor; metadataExecutor: MetadataExecutor; referenceExecutor: ReferenceExecutor; bestPracticeValidator: BestPracticeValidator; validateBundleEntriesIfNeeded(resource: any, fhirVersion: 'R4' | 'R5' | 'R6'): Promise; } export declare function collectSingleResourceValidationIssues(input: SingleResourceValidationInput, deps: SingleResourceValidationDeps): Promise; export declare function shouldValidateBundleEntryResources(settings?: ValidationSettings): boolean; export declare function shouldValidateBestPractices(settings?: ValidationSettings): boolean; //# sourceMappingURL=single-resource-validation.d.ts.map