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 { IContactDetail } from './RTTI_ContactDetail';
import { IUsageContext } from './RTTI_UsageContext';
import { ICodeableConcept } from './RTTI_CodeableConcept';
import { ISearchParameter_Component } from './RTTI_SearchParameter_Component';
export declare enum SearchParameterComparatorKind {
    _eq = "eq",
    _ne = "ne",
    _gt = "gt",
    _lt = "lt",
    _ge = "ge",
    _le = "le",
    _sa = "sa",
    _eb = "eb",
    _ap = "ap"
}
export declare enum SearchParameterModifierKind {
    _missing = "missing",
    _exact = "exact",
    _contains = "contains",
    _not = "not",
    _text = "text",
    _in = "in",
    _notIn = "not-in",
    _below = "below",
    _above = "above",
    _type = "type",
    _identifier = "identifier",
    _ofType = "ofType"
}
export declare enum SearchParameterStatusKind {
    _draft = "draft",
    _active = "active",
    _retired = "retired",
    _unknown = "unknown"
}
export declare enum SearchParameterTypeKind {
    _number = "number",
    _date = "date",
    _string = "string",
    _token = "token",
    _reference = "reference",
    _composite = "composite",
    _quantity = "quantity",
    _uri = "uri",
    _special = "special"
}
export declare enum SearchParameterXpathUsageKind {
    _normal = "normal",
    _phonetic = "phonetic",
    _nearby = "nearby",
    _distance = "distance",
    _other = "other"
}
import { IDomainResource } from './IDomainResource';
export interface ISearchParameter extends IDomainResource {
    resourceType: 'SearchParameter';
    id?: string;
    meta?: IMeta;
    implicitRules?: string;
    _implicitRules?: IElement;
    language?: string;
    _language?: IElement;
    text?: INarrative;
    contained?: IResourceList[];
    extension?: IExtension[];
    modifierExtension?: IExtension[];
    url?: string;
    _url?: IElement;
    version?: string;
    _version?: IElement;
    name?: string;
    _name?: IElement;
    derivedFrom?: string;
    status?: SearchParameterStatusKind;
    _status?: IElement;
    experimental?: boolean;
    _experimental?: IElement;
    date?: string;
    _date?: IElement;
    publisher?: string;
    _publisher?: IElement;
    contact?: IContactDetail[];
    description?: string;
    _description?: IElement;
    useContext?: IUsageContext[];
    jurisdiction?: ICodeableConcept[];
    purpose?: string;
    _purpose?: IElement;
    code?: string;
    _code?: IElement;
    base?: string[];
    _base?: IElement[];
    type?: SearchParameterTypeKind;
    _type?: IElement;
    expression?: string;
    _expression?: IElement;
    xpath?: string;
    _xpath?: IElement;
    xpathUsage?: SearchParameterXpathUsageKind;
    _xpathUsage?: IElement;
    target?: string[];
    _target?: IElement[];
    multipleOr?: boolean;
    _multipleOr?: IElement;
    multipleAnd?: boolean;
    _multipleAnd?: IElement;
    comparator?: SearchParameterComparatorKind[];
    _comparator?: IElement[];
    modifier?: SearchParameterModifierKind[];
    _modifier?: IElement[];
    chain?: string[];
    _chain?: IElement[];
    component?: ISearchParameter_Component[];
}
export declare const RTTI_SearchParameter: t.Type<ISearchParameter>;
