import { Age } from './Age.js';
import { CodeableConcept } from './CodeableConcept.js';
import { CodeableReference } from './CodeableReference.js';
import { Duration } from './Duration.js';
import { Extension } from './Extension.js';
import { FhirPrimitive } from './FhirPrimitive.js';
import { Goal } from './Goal.js';
import { Location } from './Location.js';
import { Period } from './Period.js';
import { Range } from './Range.js';
import { Reference } from './Reference.js';
import { RelatedArtifact } from './RelatedArtifact.js';
import { RequestOrchestration_Action_Condition } from './RequestOrchestration_Action_Condition.js';
import { RequestOrchestration_Action_DynamicValue } from './RequestOrchestration_Action_DynamicValue.js';
import { RequestOrchestration_Action_Input } from './RequestOrchestration_Action_Input.js';
import { RequestOrchestration_Action_Output } from './RequestOrchestration_Action_Output.js';
import { RequestOrchestration_Action_Participant } from './RequestOrchestration_Action_Participant.js';
import { RequestOrchestration_Action_RelatedAction } from './RequestOrchestration_Action_RelatedAction.js';
import { Resource } from './Resource.js';
import { Timing } from './Timing.js';
export interface RequestOrchestration_Action {
    /**
     * @description Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
     * @short Unique id for inter-element referencing
     */
    id?: string;
    /**
     * @description May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
     * @comment There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions.  The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.
     * @short Additional content defined by implementations
     */
    extension?: Extension[];
    /**
     * @description May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained andor the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.
  
  Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).
     * @comment There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions.  The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.
     * @short Extensions that cannot be ignored even if unrecognized
     */
    modifierExtension?: Extension[];
    /**
     * @description The linkId of the action from the PlanDefinition that corresponds to this action in the RequestOrchestration resource.
     * @short Pointer to specific item from the PlanDefinition
     */
    linkId?: FhirPrimitive<string>;
    /**
     * @description A user-visible prefix for the action. For example a section or item numbering such as 1. or A.
     * @short User-visible prefix for the action (e.g. 1. or A.)
     */
    prefix?: FhirPrimitive<string>;
    /**
     * @description The title of the action displayed to a user.
     * @short User-visible title
     */
    title?: FhirPrimitive<string>;
    /**
     * @description A short description of the action used to provide a summary to display to the user.
     * @short Short description of the action
     */
    description?: FhirPrimitive<string>;
    /**
     * @description A text equivalent of the action to be performed. This provides a human-interpretable description of the action when the definition is consumed by a system that might not be capable of interpreting it dynamically.
     * @short Static text equivalent of the action, used if the dynamic aspects cannot be interpreted by the receiving system
     */
    textEquivalent?: FhirPrimitive<string>;
    /**
     * @description Indicates how quickly the action should be addressed with respect to other actions.
     * @short routine | urgent | asap | stat
     */
    priority?: FhirPrimitive<string>;
    /**
     * @description A code that provides meaning for the action or action group. For example, a section may have a LOINC code for a section of a documentation template.
     * @short Code representing the meaning of the action or sub-actions
     */
    code?: CodeableConcept[];
    /**
     * @description Didactic or other informational resources associated with the action that can be provided to the CDS recipient. Information resources can include inline text commentary and links to web resources.
     * @short Supporting documentation for the intended performer of the action
     */
    documentation?: RelatedArtifact[];
    /**
     * @description Goals that are intended to be achieved by following the requests in this action.
     * @short What goals
     */
    goal?: Reference<Goal>[];
    /**
     * @backbone Nested BackboneElement: condition [0..*]
     */
    condition?: RequestOrchestration_Action_Condition[];
    /**
     * @backbone Nested BackboneElement: input [0..*]
     */
    input?: RequestOrchestration_Action_Input[];
    /**
     * @backbone Nested BackboneElement: output [0..*]
     */
    output?: RequestOrchestration_Action_Output[];
    /**
     * @backbone Nested BackboneElement: relatedAction [0..*]
     */
    relatedAction?: RequestOrchestration_Action_RelatedAction[];
    /**
     * @choice This is part of the timing[x] choice.
     * @oneOf timingDateTime, timingAge, timingPeriod, timingDuration, timingRange, timingTiming
     */
    timingDateTime?: FhirPrimitive<string>;
    /**
     * @choice This is part of the timing[x] choice.
     * @oneOf timingDateTime, timingAge, timingPeriod, timingDuration, timingRange, timingTiming
     */
    timingAge?: Age;
    /**
     * @choice This is part of the timing[x] choice.
     * @oneOf timingDateTime, timingAge, timingPeriod, timingDuration, timingRange, timingTiming
     */
    timingPeriod?: Period;
    /**
     * @choice This is part of the timing[x] choice.
     * @oneOf timingDateTime, timingAge, timingPeriod, timingDuration, timingRange, timingTiming
     */
    timingDuration?: Duration;
    /**
     * @choice This is part of the timing[x] choice.
     * @oneOf timingDateTime, timingAge, timingPeriod, timingDuration, timingRange, timingTiming
     */
    timingRange?: Range;
    /**
     * @choice This is part of the timing[x] choice.
     * @oneOf timingDateTime, timingAge, timingPeriod, timingDuration, timingRange, timingTiming
     */
    timingTiming?: Timing;
    /**
     * @description Identifies the facility where the action will occur; e.g. home, hospital, specific clinic, etc.
     * @comment May reference a specific clinical location or may just identify a type of location.
     * @short Where it should happen
     */
    location?: CodeableReference<Location>;
    /**
     * @backbone Nested BackboneElement: participant [0..*]
     */
    participant?: RequestOrchestration_Action_Participant[];
    /**
     * @description The type of action to perform (create, update, remove).
     * @short create | update | remove | fire-event
     */
    type?: CodeableConcept;
    /**
     * @description Defines the grouping behavior for the action and its children.
     * @short visual-group | logical-group | sentence-group
     */
    groupingBehavior?: FhirPrimitive<string>;
    /**
     * @description Defines the selection behavior for the action and its children.
     * @short any | all | all-or-none | exactly-one | at-most-one | one-or-more
     */
    selectionBehavior?: FhirPrimitive<string>;
    /**
     * @description Defines expectations around whether an action is required.
     * @short must | could | must-unless-documented
     */
    requiredBehavior?: FhirPrimitive<string>;
    /**
     * @description Defines whether the action should usually be preselected.
     * @short yes | no
     */
    precheckBehavior?: FhirPrimitive<string>;
    /**
     * @description Defines whether the action can be selected multiple times.
     * @short single | multiple
     */
    cardinalityBehavior?: FhirPrimitive<string>;
    /**
     * @description The resource that is the target of the action (e.g. CommunicationRequest).
     * @comment The target resource SHALL be a [Request](request.html) resource with a Request.intent set to "option".
     * @short The target of the action
     */
    resource?: Reference<Resource>;
    /**
     * @choice This is part of the definition[x] choice.
     * @oneOf definitionCanonical, definitionUri
     */
    definitionCanonical?: FhirPrimitive<string>;
    /**
     * @choice This is part of the definition[x] choice.
     * @oneOf definitionCanonical, definitionUri
     */
    definitionUri?: FhirPrimitive<string>;
    /**
     * @description A reference to a StructureMap resource that defines a transform that can be executed to produce the intent resource using the ActivityDefinition instance as the input.
     * @comment Note that when a referenced ActivityDefinition also defines a transform, the transform specified here generally takes precedence. In addition, if both a transform and dynamic values are specific, the dynamic values are applied to the result of the transform.
     * @short Transform to apply the template
     */
    transform?: FhirPrimitive<string>;
    /**
     * @backbone Nested BackboneElement: dynamicValue [0..*]
     */
    dynamicValue?: RequestOrchestration_Action_DynamicValue[];
    /**
     * @description Sub actions.
     * @short Sub action
     */
    action?: any[];
}
//# sourceMappingURL=RequestOrchestration_Action.d.ts.map