import { LaravelModel } from './api.models';
import { IdentificationType } from './api-catalog.interfaces';
export interface Document extends LaravelModel {
    document_type_range_id: number;
    document_number: number;
    document_prefix: string;
    document_suffix: string;
    document_number_original: number;
    document_prefix_original: string;
    document_suffix_original: string;
    customer_id: number;
    customer_company_name: string;
    customer_email: string;
    customer_address_line1: string;
    customer_identification_number: string;
    customer_identification_type_id: number;
    provider_name: string;
    provider_identification_number: number;
    document_authorization_number: string;
    provider_extra_fields: {
        phone: string;
        fax: string;
    };
    document_id: number;
    created_at: string;
    updated_at: string;
    transaction_id: string;
    extra_fields: {
        observation: string;
        document_date: string;
    };
    customer_address_line2: string;
    customer_address_line3: string;
    customer_postal_code: string;
    customer_state: string;
    customer_county_name: string;
    customer_city_name: string;
    customer_country_id: number;
    status: number;
    user_id: number;
    customer_full_name: string;
    customer_phone_code: string;
    customer_phone_number: string;
    gmt_offset: string;
    customer_type_id: number;
    customer_extra_fields: string;
    installation_id: number;
    exchange: number;
    authorization_numbers: string;
    extra_fields_json: string;
    provider_extra_fields_json: string;
    document_type_range: DocumentTypeRange;
    items: DocumentItem[];
    document_payments: DocumentPayment[];
    payments: Payment[];
}
export interface DocumentTypeRange extends LaravelModel {
    id: number;
    provider_id: number;
    model_type: string;
    model_id: number;
    init_number: number;
    final_number: number;
    current_number: number;
    used_numbers: number;
    min_until_mail: number;
    prefix: string;
    sap_prefix: string;
    suffix: string;
    sap_suffix: string;
    external_generated: boolean;
    authorization_number: string;
    environment: string;
    is_manual: boolean;
    auto_activation: boolean;
    activation_key: string;
    authorization_label: string;
    valid_since: string;
    valid_until: string;
    created_at: string;
    updated_at: string;
    is_active: boolean;
    country_document_type_id: number;
}
export interface DocumentItem extends LaravelModel {
    id: number;
    document_id: number;
    details: {
        account: number;
        country_reference_currency_id: number;
        customer_company_name: string;
    };
    model_origin: string;
    model_type: string;
    model_id: number;
    quantity: number;
    unit_price: number;
    subtotal: number;
    tax_detail: {};
    total: number;
    created_at: string;
    updated_at: string;
    discount: 0;
    details_json: string;
}
export interface DocumentPayment extends LaravelModel {
    id: number;
    document_id: number;
    payment_id: number;
    amount: number;
    created_at: string;
    updated_at: string;
    payment: Payment;
}
export interface Payment extends LaravelModel {
    id: number;
    amount: number;
    country_reference_currency_id: number;
    exchange: number;
    company_country_payment_type_id: number;
    due_date: string;
    received: number;
    status: number;
    details: {};
    created_at: string;
    updated_at: string;
    transaction_id: string;
    gmt_offset: string;
    country_payment_type_id: number;
    opening_id: number;
    installation_id: number;
    details_json: {};
    payment_adjustment: {};
    pivot: {
        document_id: number;
        payment_id: number;
        amount: number;
    };
}
export interface Customer extends LaravelModel {
    identification_number: number;
    company_name: string;
    full_name: string;
    email: string;
    phone_code: string;
    phone_number: number;
    birth_date: string;
    postal_code: number;
    state: string;
    county_name: string;
    city_name: string;
    address_line1: string;
    address_line2: string;
    address_line3: string;
    company_id: number;
    identification_type_id: number;
    extra_fields: {
        [key: string]: string;
    };
    country_id: number;
    customer_type_id: number;
}
export interface CustomerType extends LaravelModel {
    country_id: number;
    identification_type_customer_types: IdentificationTypeCustomer[];
    name: string;
}
export interface IdentificationTypeCustomer extends LaravelModel {
    customer_type_id: number;
    identification_type_id: number;
    customer_id: number | null;
    identificationType: IdentificationType;
}
