import { Customer, CustomerType, Document } from './api-invoices.interfaces';
import { CustomerCountryDocumentType } from './api-billing.interfaces';
export interface OperationAccountPaymentIn {
    document_type_range_id: number | null;
    document_number: string | null;
    observation: string | null;
    document_date: string | null;
    total_amount: number;
    country_reference_currency_id: number;
    customer: {
        company_name: string;
        full_name: string;
        account_number: string;
        country_id: number;
    };
    payments: AccountPayment[];
}
export type AccountPayment = {
    country_payment_type_id: number;
    country_reference_currency_id: number;
    amount: number;
    exchange: string;
    due_date: string;
    received: number;
    status?: boolean;
    details?: {};
};
export interface OperationAccountPaymentOut {
    document: Document;
    transaction_id: string;
}
export type PrintCollectionReceiptOut = {
    collection_receipt: string;
};
export type CancelPaymentReceiptIn = {
    document_id: number;
    is_canceled_invoice: boolean;
    cancellation_reason_id: number;
};
export type OperationCancelBillingIn = {
    invoiceId: number;
    cancellation_reason_id: number;
    cancel_payment: boolean;
    send_shipments: boolean;
};
export type OperationDocumentIn = {
    country_document_type_id: number;
    customer: {
        company_name: string;
        full_name: string;
        email: string;
        phone_code: string;
        phone_number: string;
        address_line1: string;
        address_line2: string;
        address_line3: string;
        identification_number: string;
        identification_type_id: number;
        postal_code: string;
        state: string;
        county_name: string;
        city_name: string;
        country_id: number;
        extra_fields: {
            [key: string]: string;
        };
    };
    document_extra_fields: {
        [key: string]: string;
    };
};
export type OperationDocumentOut = {
    document: Document;
};
export type InvoiceTypeCustomParamsIn = {
    identificationNumber: string;
    identificationTypeid: number;
};
export type OperationPrintDocumentOut = {
    document: string;
};
export type CustomerTypesOut = {
    customer_types: CustomerType[];
    total: number;
};
export type CustomersOut = {
    customers: Customer[];
};
export type OperationShipmentExternalOut = {
    document: Document;
};
export type OperationShipmentExternalIn = {};
export type CustomerDocumentTypesOut = {
    customer_country_document_types: CustomerCountryDocumentType[];
    total: number;
};
