import * as t from 'io-ts';
import { IMeta } from './RTTI_Meta';
import { IElement } from './RTTI_Element';
import { INarrative } from './RTTI_Narrative';
import { IResourceList } from '../Union/RTTI_ResourceList';
import { IExtension } from './RTTI_Extension';
import { IIdentifier } from './RTTI_Identifier';
import { ICodeableConcept } from './RTTI_CodeableConcept';
import { IReference } from './RTTI_Reference';
import { IPeriod } from './RTTI_Period';
import { IContract_ContentDefinition } from './RTTI_Contract_ContentDefinition';
import { IContract_Term } from './RTTI_Contract_Term';
import { IContract_Signer } from './RTTI_Contract_Signer';
import { IContract_Friendly } from './RTTI_Contract_Friendly';
import { IContract_Legal } from './RTTI_Contract_Legal';
import { IContract_Rule } from './RTTI_Contract_Rule';
import { IAttachment } from './RTTI_Attachment';
import { IDomainResource } from './IDomainResource';
export interface IContract extends IDomainResource {
    resourceType: 'Contract';
    id?: string;
    meta?: IMeta;
    implicitRules?: string;
    _implicitRules?: IElement;
    language?: string;
    _language?: IElement;
    text?: INarrative;
    contained?: IResourceList[];
    extension?: IExtension[];
    modifierExtension?: IExtension[];
    identifier?: IIdentifier[];
    url?: string;
    _url?: IElement;
    version?: string;
    _version?: IElement;
    status?: string;
    _status?: IElement;
    legalState?: ICodeableConcept;
    instantiatesCanonical?: IReference;
    instantiatesUri?: string;
    _instantiatesUri?: IElement;
    contentDerivative?: ICodeableConcept;
    issued?: string;
    _issued?: IElement;
    applies?: IPeriod;
    expirationType?: ICodeableConcept;
    subject?: IReference[];
    authority?: IReference[];
    domain?: IReference[];
    site?: IReference[];
    name?: string;
    _name?: IElement;
    title?: string;
    _title?: IElement;
    subtitle?: string;
    _subtitle?: IElement;
    alias?: string[];
    _alias?: IElement[];
    author?: IReference;
    scope?: ICodeableConcept;
    topicCodeableConcept?: ICodeableConcept;
    topicReference?: IReference;
    type?: ICodeableConcept;
    subType?: ICodeableConcept[];
    contentDefinition?: IContract_ContentDefinition;
    term?: IContract_Term[];
    supportingInfo?: IReference[];
    relevantHistory?: IReference[];
    signer?: IContract_Signer[];
    friendly?: IContract_Friendly[];
    legal?: IContract_Legal[];
    rule?: IContract_Rule[];
    legallyBindingAttachment?: IAttachment;
    legallyBindingReference?: IReference;
}
export declare const RTTI_Contract: t.Type<IContract>;
