export interface CreateDraftRequest {
    EInvoice: EInvoice;
    CustomerAlias: string;
}
export interface CreateEInvoiceModelRequest {
    EInvoice: EInvoice;
    CustomerAlias: string;
}
export interface EInvoice {
    InvoiceInfo: InvoiceInfo;
    CompanyInfo: CompanyInfo;
    CustomerInfo: CustomerInfo;
    BuyerCustomerInfo?: CustomerInfo;
    ExportCustomerInfo?: ExportCustomerInfo;
    InvoiceLines: InvoiceLine[];
    Notes?: string[];
}
export interface InvoiceInfo {
    UUID: string;
    TemplateUUID: string;
    TemplateBase64String: string;
    InvoiceType: string;
    InvoiceSerieOrNumber: string;
    IssueDate: string;
    CurrencyCode: string;
    ExchangeRate: number;
    InvoiceProfile: string;
    DespatchDocumentReference?: DespatchDocumentReference[];
    OrderReference?: OrderReference;
    OrderReferenceDocument?: OrderReferenceDocument;
    AdditionalDocumentReferences?: AdditionalDocumentReference[];
    TaxExemptionReasonInfo?: TaxExemptionReasonInfo;
    PaymentTermsInfo?: PaymentTermsInfo;
    PaymentMeansInfo?: PaymentMeansInfo;
    OKCInfo?: OKCInfo;
    ReturnInvoiceInfo?: ReturnInvoiceInfo[];
    AccountingCost?: string;
    InvoicePeriod?: InvoicePeriod;
    SGKInfo?: SGKInfo;
    LineExtensionAmount?: number;
    GeneralAllowanceTotal?: number;
    PayableAmount?: number;
    KdvTotal?: number;
}
export interface CompanyInfo {
    TaxNumber: string;
    Name: string;
    TaxOffice: string;
    PartyIdentifications?: PartyIdentification[];
    AgentPartyIdentifications?: PartyIdentification[];
    Address: string;
    District: string;
    City: string;
    Country: string;
    PostalCode: string;
    Phone?: string;
    Fax?: string;
    Mail?: string;
    WebSite?: string;
}
export interface CustomerInfo {
    TaxNumber: string;
    Name: string;
    TaxOffice: string;
    PartyIdentifications?: PartyIdentification[];
    AgentPartyIdentifications?: PartyIdentification[];
    Address: string;
    District: string;
    City: string;
    Country: string;
    PostalCode: string;
    Phone?: string;
    Fax?: string;
    Mail?: string;
    WebSite?: string;
}
export interface ExportCustomerInfo {
    TaxNumber: string;
    LegalRegistrationName: string;
    PersonName: string;
    PersonSurName: string;
    Address: string;
    District: string;
    City: string;
    Country: string;
    PostalCode: string;
    Phone?: string;
    Fax?: string;
    Mail?: string;
    WebSite?: string;
}
export interface InvoiceLine {
    Index: string;
    SellerCode: string;
    BuyerCode: string;
    Name: string;
    Description?: string;
    Quantity: number;
    UnitType: string;
    Price: number;
    AllowanceTotal?: number;
    KDVPercent?: number;
    KDVTotal?: number;
    Taxes?: Tax[];
}
export interface Tax {
    TaxCode: string;
    Total: number;
    Percent: number;
    ReasonCode?: string;
    ReasonDesc?: string;
}
export interface DespatchDocumentReference {
    IssueDate: string;
    Value: string;
}
export interface OrderReference {
    IssueDate: string;
    Value: string;
}
export interface OrderReferenceDocument {
    ID: string;
    IssueDate: string;
    DocumentType: string;
    DocumentTypeCode: string;
    DocumentDescription: string;
    Attachment: Attachment;
}
export interface Attachment {
    Base64Data: string;
    MimeCode: string;
    FileName: string;
}
export interface AdditionalDocumentReference {
    ID: string;
    IssueDate: string;
    DocumentType: string;
    DocumentTypeCode: string;
    DocumentDescription: string;
    Attachment: Attachment;
}
export interface TaxExemptionReasonInfo {
    KDVExemptionReasonCode: string;
    OTVExemptionReasonCode: string;
    OzelMatrahExemptionReasonCode: string;
}
export interface PaymentTermsInfo {
    Percent: number;
    Amount: number;
    Note: string;
}
export interface PaymentMeansInfo {
    Code: string;
    ChannelCode: string;
    DueDate: string;
    PayeeFinancialAccountID: string;
    Note: string;
}
export interface OKCInfo {
    ID: string;
    IssueDate: string;
    Time: string;
    ZNo: string;
    EndPointID: string;
    DocumentDescription: string;
}
export interface ReturnInvoiceInfo {
    InvoiceNumber: string;
    IssueDate: string;
}
export interface InvoicePeriod {
    StartDate: string;
    StartTime?: string;
    EndDate: string;
    EndTime?: string;
    DurationMeasureValue?: number;
    Description?: string;
}
export interface SGKInfo {
    RegisterName: string;
    DocumentNumber: string;
    RegisterCode: string;
}
export interface PartyIdentification {
    SchemeID: string;
    Value: string;
}
