import { fhirtypes, utils, fshtypes } from 'fsh-sushi'; import { ExportableSdRule, ExportableInvariant, ExportableMapping, ExportableProfile, ExportableExtension, ExportableLogical, ExportableResource, ExportableAddElementRule } from '../exportable'; import { ProcessableElementDefinition } from '.'; export declare const TYPE_CHARACTERISTICS_EXTENSION = "http://hl7.org/fhir/StructureDefinition/structuredefinition-type-characteristics"; export declare const LOGICAL_TARGET_EXTENSION = "http://hl7.org/fhir/tools/StructureDefinition/logical-target"; export declare class StructureDefinitionProcessor { static process(input: any, fisher: utils.Fishable, config: fshtypes.Configuration, existingInvariants?: ExportableInvariant[]): [ ExportableProfile | ExportableExtension | ExportableLogical | ExportableResource, ...(ExportableInvariant | ExportableMapping)[] ] | []; static extractKeywords(input: ProcessableStructureDefinition, target: ConstrainableEntity): void; static extractRules(input: ProcessableStructureDefinition, elements: ProcessableElementDefinition[], target: ConstrainableEntity, fisher: utils.Fishable, config: fshtypes.Configuration): void; static extractInvariants(input: ProcessableStructureDefinition, elements: ProcessableElementDefinition[], existingInvariants: ExportableInvariant[], fisher: utils.Fishable): ExportableInvariant[]; static extractMappings(elements: ProcessableElementDefinition[], input: ProcessableStructureDefinition, fisher: utils.Fishable): ExportableMapping[]; static isProcessableStructureDefinition(input: any): input is ProcessableStructureDefinition; } export interface ProcessableStructureDefinition { name: string; resourceType: string; type?: string; id?: string; url?: string; title?: string; description?: string; baseDefinition?: string; kind?: string; derivation?: string; mapping?: fhirtypes.StructureDefinitionMapping[]; context?: fhirtypes.StructureDefinitionContext[]; extension?: fhirtypes.Extension[]; differential?: { element: any[]; }; snapshot?: { element: any[]; }; } interface ConstrainableEntity { name: string; id: string; title?: string; description?: string; rules?: (ExportableSdRule | ExportableAddElementRule)[]; parent?: string; } export {};