import { CODEABLE_CONCEPT, EXTENSION, IDENTTIFIER, MONEY, MULTI_RESOURCE, PERIOD } from "../config";
import { ResourceMaster } from "../Interfaces";
import ResourceMain from "../resources/ResourceMai";
import { TO_HTML_HCX_OPTIONS } from "./interfaces";
declare const status: readonly ["active", "cancelled", "draft", "entered-in-error"];
declare type Status = (typeof status)[number];
declare const outcome: readonly ["queued", "complete", "error", "partial"];
declare type Outcome = (typeof outcome)[number];
interface PaymentIssuer extends MULTI_RESOURCE {
    resource: "Organization";
}
interface Requestor extends MULTI_RESOURCE {
    resource: "Practitioner" | "PractitionerRole" | "Organization";
}
interface Request extends MULTI_RESOURCE {
    resource: "Task";
}
interface DetailSubmitter extends MULTI_RESOURCE {
    resource: "Practitioner" | "PractitionerRole" | "Organization";
}
interface DetailResponsible extends MULTI_RESOURCE {
    resource: "PractitionerRole";
}
interface DetailPayee extends MULTI_RESOURCE {
    resource: "Practitioner" | "PractitionerRole" | "Organization";
}
interface Detail {
    id?: string;
    extension?: EXTENSION[];
    modifierExtension?: EXTENSION[];
    identifier?: IDENTTIFIER;
    predecessor?: IDENTTIFIER;
    type: CODEABLE_CONCEPT;
    request?: MULTI_RESOURCE;
    submitter?: DetailSubmitter;
    response?: MULTI_RESOURCE;
    date?: string;
    responsible?: DetailResponsible;
    payee?: DetailPayee;
    amount?: MONEY;
}
interface ProcessNote {
    id?: string;
    extension?: EXTENSION[];
    modifierExtension?: EXTENSION[];
    type?: "display" | "print" | "printoper";
    text?: string;
}
export interface PAYMENT_RECONCILIATION {
    id?: string;
    resourceType: "PaymentReconciliation";
    text: string;
    identifier: IDENTTIFIER[];
    status: Status;
    period?: PERIOD;
    createdDate: string;
    extension?: EXTENSION[];
    modifierExtension?: EXTENSION[];
    paymentIssuer?: PaymentIssuer;
    requestor?: Requestor;
    request?: Request;
    outcome?: Outcome;
    disposition?: string;
    paymentDate: string;
    paymentAmount: MONEY;
    paymentIdentifier?: IDENTTIFIER;
    implicitRules?: string;
    formCode?: CODEABLE_CONCEPT;
    detail?: Detail[];
    processNote: ProcessNote[];
}
export interface TO_HTML_HCX_OPTIONS_PAYMENT_RECONCILIATION extends Omit<TO_HTML_HCX_OPTIONS, "body"> {
    body: PAYMENT_RECONCILIATION;
}
export declare class PaymentReconciliation extends ResourceMain implements ResourceMaster {
    getFHIR(options: PAYMENT_RECONCILIATION): {
        resourceType: string;
        id: string | undefined;
        meta: {
            profile: string[];
        };
        text: {
            status: string;
            div: string;
        };
        extension: EXTENSION[] | undefined;
        modifierExtension: EXTENSION[] | undefined;
        identifier: IDENTTIFIER[];
        status: "cancelled" | "entered-in-error" | "active" | "draft";
        period: PERIOD | undefined;
        created: string;
        paymentIssuer: {
            reference: string;
            identifier: IDENTTIFIER | undefined;
            display: string | undefined;
            type: string | undefined;
        } | undefined;
        requestor: {
            reference: string;
            identifier: IDENTTIFIER | undefined;
            display: string | undefined;
            type: string | undefined;
        } | undefined;
        request: {
            reference: string;
            identifier: IDENTTIFIER | undefined;
            display: string | undefined;
            type: string | undefined;
        } | undefined;
        outcome: "partial" | "queued" | "complete" | "error" | undefined;
        disposition: string | undefined;
        paymentDate: string;
        paymentAmount: MONEY;
        paymentIdentifier: IDENTTIFIER | undefined;
        implicitRules: string | undefined;
        formCode: CODEABLE_CONCEPT | undefined;
        detail: {
            id: string | undefined;
            extension: EXTENSION[] | undefined;
            modifierExtension: EXTENSION[] | undefined;
            identifier: IDENTTIFIER | undefined;
            predecessor: IDENTTIFIER | undefined;
            type: CODEABLE_CONCEPT;
            request: {
                reference: string;
                identifier: IDENTTIFIER | undefined;
                display: string | undefined;
                type: string | undefined;
            } | undefined;
            submitter: {
                reference: string;
                identifier: IDENTTIFIER | undefined;
                display: string | undefined;
                type: string | undefined;
            } | undefined;
            response: {
                reference: string;
                identifier: IDENTTIFIER | undefined;
                display: string | undefined;
                type: string | undefined;
            } | undefined;
            date: string | undefined;
            responsible: {
                reference: string;
                identifier: IDENTTIFIER | undefined;
                display: string | undefined;
                type: string | undefined;
            } | undefined;
            payee: {
                reference: string;
                identifier: IDENTTIFIER | undefined;
                display: string | undefined;
                type: string | undefined;
            } | undefined;
            amount: MONEY | undefined;
        }[] | undefined;
        processNote: ProcessNote[];
    };
    convertFhirToObject(options: any): PAYMENT_RECONCILIATION;
    toHtml(option: TO_HTML_HCX_OPTIONS_PAYMENT_RECONCILIATION): Promise<string>;
    statusArray(): Status[];
}
export {};
//# sourceMappingURL=PaymentReconciliation.d.ts.map