import { ListResult } from '../list_result';
import { RequestWrapper } from "../request_wrapper";
import { Model } from "./model";
import { filter } from "../filter";
export declare class CreditNote extends Model {
    id: string;
    customer_id: string;
    subscription_id?: string;
    reference_invoice_id?: string;
    type: string;
    reason_code?: string;
    status: string;
    vat_number?: string;
    date?: number;
    price_type: string;
    currency_code: string;
    total?: number;
    amount_allocated?: number;
    amount_refunded?: number;
    amount_available?: number;
    refunded_at?: number;
    voided_at?: number;
    generated_at?: number;
    resource_version?: number;
    updated_at?: number;
    channel?: string;
    einvoice?: Einvoice;
    sub_total: number;
    sub_total_in_local_currency?: number;
    total_in_local_currency?: number;
    local_currency_code?: string;
    round_off_amount?: number;
    fractional_correction?: number;
    line_items?: Array<LineItem>;
    discounts?: Array<Discount>;
    line_item_discounts?: Array<LineItemDiscount>;
    line_item_tiers?: Array<LineItemTier>;
    taxes?: Array<Tax>;
    line_item_taxes?: Array<LineItemTax>;
    linked_refunds?: Array<LinkedRefund>;
    allocations?: Array<Allocation>;
    deleted: boolean;
    tax_category?: string;
    local_currency_exchange_rate?: number;
    create_reason_code?: string;
    vat_number_prefix?: string;
    business_entity_id?: string;
    shipping_address?: ShippingAddress;
    billing_address?: BillingAddress;
    site_details_at_creation?: SiteDetailsAtCreation;
    tax_origin?: TaxOrigin;
    line_item_addresses?: Array<LineItemAddress>;
    static create(params?: _credit_note.create_params): RequestWrapper;
    static retrieve(credit_note_id: string, params?: any): RequestWrapper;
    static pdf(credit_note_id: string, params?: _credit_note.pdf_params): RequestWrapper;
    static download_einvoice(credit_note_id: string, params?: any): RequestWrapper;
    static refund(credit_note_id: string, params?: _credit_note.refund_params): RequestWrapper;
    static record_refund(credit_note_id: string, params?: _credit_note.record_refund_params): RequestWrapper;
    static void_credit_note(credit_note_id: string, params?: _credit_note.void_credit_note_params): RequestWrapper;
    static list(params?: _credit_note.credit_note_list_params): RequestWrapper<ListResult>;
    static credit_notes_for_customer(customer_id: string, params?: any): RequestWrapper<ListResult>;
    static delete(credit_note_id: string, params?: _credit_note.delete_params): RequestWrapper;
    static remove_tax_withheld_refund(credit_note_id: string, params?: _credit_note.remove_tax_withheld_refund_params): RequestWrapper;
    static resend_einvoice(credit_note_id: string, params?: any): RequestWrapper;
    static send_einvoice(credit_note_id: string, params?: any): RequestWrapper;
    static import_credit_note(params?: _credit_note.import_credit_note_params): RequestWrapper;
}
export declare class Einvoice extends Model {
    id: string;
    reference_number?: string;
    status: string;
    message?: string;
}
export declare class LineItem extends Model {
    id?: string;
    subscription_id?: string;
    date_from: number;
    date_to: number;
    unit_amount: number;
    quantity?: number;
    amount?: number;
    pricing_model?: string;
    is_taxed: boolean;
    tax_amount?: number;
    tax_rate?: number;
    unit_amount_in_decimal?: string;
    quantity_in_decimal?: string;
    amount_in_decimal?: string;
    discount_amount?: number;
    item_level_discount_amount?: number;
    metered?: boolean;
    percentage?: string;
    reference_line_item_id?: string;
    description: string;
    entity_description?: string;
    entity_type: string;
    tax_exempt_reason?: string;
    entity_id?: string;
    customer_id?: string;
}
export declare class Discount extends Model {
    amount: number;
    description?: string;
    entity_type: string;
    discount_type?: string;
    entity_id?: string;
    coupon_set_code?: string;
}
export declare class LineItemDiscount extends Model {
    line_item_id: string;
    discount_type: string;
    coupon_id?: string;
    entity_id?: string;
    discount_amount: number;
}
export declare class LineItemTier extends Model {
    line_item_id?: string;
    starting_unit: number;
    ending_unit?: number;
    quantity_used: number;
    unit_amount: number;
    starting_unit_in_decimal?: string;
    ending_unit_in_decimal?: string;
    quantity_used_in_decimal?: string;
    unit_amount_in_decimal?: string;
    pricing_type?: string;
    package_size?: number;
}
export declare class Tax extends Model {
    name: string;
    amount: number;
    description?: string;
}
export declare class LineItemTax extends Model {
    line_item_id?: string;
    tax_name: string;
    tax_rate: number;
    date_to?: number;
    date_from?: number;
    prorated_taxable_amount?: number;
    is_partial_tax_applied?: boolean;
    is_non_compliance_tax?: boolean;
    taxable_amount: number;
    tax_amount: number;
    tax_juris_type?: string;
    tax_juris_name?: string;
    tax_juris_code?: string;
    tax_amount_in_local_currency?: number;
    local_currency_code?: string;
}
export declare class LinkedRefund extends Model {
    txn_id: string;
    applied_amount: number;
    applied_at: number;
    txn_status?: string;
    txn_date?: number;
    txn_amount?: number;
    refund_reason_code?: string;
}
export declare class Allocation extends Model {
    invoice_id: string;
    allocated_amount: number;
    allocated_at: number;
    invoice_date?: number;
    invoice_status: string;
    tax_application?: string;
}
export declare class ShippingAddress extends Model {
    first_name?: string;
    last_name?: string;
    email?: string;
    company?: string;
    phone?: string;
    line1?: string;
    line2?: string;
    line3?: string;
    city?: string;
    state_code?: string;
    state?: string;
    country?: string;
    zip?: string;
    validation_status?: string;
    index: number;
}
export declare class BillingAddress extends Model {
    first_name?: string;
    last_name?: string;
    email?: string;
    company?: string;
    phone?: string;
    line1?: string;
    line2?: string;
    line3?: string;
    city?: string;
    state_code?: string;
    state?: string;
    country?: string;
    zip?: string;
    validation_status?: string;
}
export declare class SiteDetailsAtCreation extends Model {
    timezone?: string;
    organization_address?: any;
}
export declare class TaxOrigin extends Model {
    country?: string;
    registration_number?: string;
}
export declare class LineItemAddress extends Model {
    line_item_id?: string;
    first_name?: string;
    last_name?: string;
    email?: string;
    company?: string;
    phone?: string;
    line1?: string;
    line2?: string;
    line3?: string;
    city?: string;
    state_code?: string;
    state?: string;
    country?: string;
    zip?: string;
    validation_status?: string;
}
export declare namespace _credit_note {
    interface create_params {
        reference_invoice_id?: string;
        customer_id?: string;
        total?: number;
        type: string;
        reason_code?: string;
        create_reason_code?: string;
        date?: number;
        customer_notes?: string;
        currency_code?: string;
        comment?: string;
        line_items?: Array<line_items_create_params>;
    }
    interface pdf_params {
        disposition_type?: string;
    }
    interface refund_params {
        refund_amount?: number;
        customer_notes?: string;
        refund_reason_code?: string;
    }
    interface record_refund_params {
        refund_reason_code?: string;
        comment?: string;
        transaction?: transaction_record_refund_params;
    }
    interface void_credit_note_params {
        comment?: string;
    }
    interface credit_note_list_params {
        limit?: number;
        offset?: string;
        einvoice?: einvoice_credit_note_list_params;
        include_deleted?: boolean;
        id?: filter._string;
        customer_id?: filter._string;
        subscription_id?: filter._string;
        reference_invoice_id?: filter._string;
        type?: filter._enum;
        reason_code?: filter._enum;
        create_reason_code?: filter._string;
        status?: filter._enum;
        date?: filter._timestamp;
        total?: filter._number;
        price_type?: filter._enum;
        amount_allocated?: filter._number;
        amount_refunded?: filter._number;
        amount_available?: filter._number;
        voided_at?: filter._timestamp;
        updated_at?: filter._timestamp;
        channel?: filter._enum;
        "sort_by[asc]"?: string;
        "sort_by[desc]"?: string;
    }
    interface delete_params {
        comment?: string;
    }
    interface remove_tax_withheld_refund_params {
        tax_withheld?: tax_withheld_remove_tax_withheld_refund_params;
    }
    interface import_credit_note_params {
        id: string;
        customer_id?: string;
        subscription_id?: string;
        reference_invoice_id: string;
        type: string;
        currency_code?: string;
        create_reason_code: string;
        date: number;
        status?: string;
        total?: number;
        refunded_at?: number;
        voided_at?: number;
        sub_total?: number;
        round_off_amount?: number;
        fractional_correction?: number;
        vat_number_prefix?: string;
        line_items?: Array<line_items_import_credit_note_params>;
        line_item_tiers?: Array<line_item_tiers_import_credit_note_params>;
        discounts?: Array<discounts_import_credit_note_params>;
        taxes?: Array<taxes_import_credit_note_params>;
        allocations?: Array<allocations_import_credit_note_params>;
        linked_refunds?: Array<linked_refunds_import_credit_note_params>;
    }
    interface line_items_create_params {
        reference_line_item_id?: string;
    }
    interface line_items_create_params {
        unit_amount?: number;
    }
    interface line_items_create_params {
        unit_amount_in_decimal?: string;
    }
    interface line_items_create_params {
        quantity?: number;
    }
    interface line_items_create_params {
        quantity_in_decimal?: string;
    }
    interface line_items_create_params {
        amount?: number;
    }
    interface line_items_create_params {
        date_from?: number;
    }
    interface line_items_create_params {
        date_to?: number;
    }
    interface line_items_create_params {
        description?: string;
    }
    interface line_items_create_params {
        entity_type?: string;
    }
    interface line_items_create_params {
        entity_id?: string;
    }
    interface transaction_record_refund_params {
        amount?: number;
    }
    interface transaction_record_refund_params {
        payment_method: string;
    }
    interface transaction_record_refund_params {
        reference_number?: string;
    }
    interface transaction_record_refund_params {
        custom_payment_method_id?: string;
    }
    interface transaction_record_refund_params {
        date: number;
    }
    interface einvoice_credit_note_list_params {
        status?: filter._enum;
    }
    interface tax_withheld_remove_tax_withheld_refund_params {
        id: string;
    }
    interface line_items_import_credit_note_params {
        reference_line_item_id?: string;
    }
    interface line_items_import_credit_note_params {
        id?: string;
    }
    interface line_items_import_credit_note_params {
        date_from?: number;
    }
    interface line_items_import_credit_note_params {
        date_to?: number;
    }
    interface line_items_import_credit_note_params {
        subscription_id?: string;
    }
    interface line_items_import_credit_note_params {
        description: string;
    }
    interface line_items_import_credit_note_params {
        unit_amount?: number;
    }
    interface line_items_import_credit_note_params {
        quantity?: number;
    }
    interface line_items_import_credit_note_params {
        amount?: number;
    }
    interface line_items_import_credit_note_params {
        unit_amount_in_decimal?: string;
    }
    interface line_items_import_credit_note_params {
        quantity_in_decimal?: string;
    }
    interface line_items_import_credit_note_params {
        amount_in_decimal?: string;
    }
    interface line_items_import_credit_note_params {
        entity_type?: string;
    }
    interface line_items_import_credit_note_params {
        entity_id?: string;
    }
    interface line_items_import_credit_note_params {
        item_level_discount1_entity_id?: string;
    }
    interface line_items_import_credit_note_params {
        item_level_discount1_amount?: number;
    }
    interface line_items_import_credit_note_params {
        item_level_discount2_entity_id?: string;
    }
    interface line_items_import_credit_note_params {
        item_level_discount2_amount?: number;
    }
    interface line_items_import_credit_note_params {
        tax1_name?: string;
    }
    interface line_items_import_credit_note_params {
        tax1_amount?: number;
    }
    interface line_items_import_credit_note_params {
        tax2_name?: string;
    }
    interface line_items_import_credit_note_params {
        tax2_amount?: number;
    }
    interface line_items_import_credit_note_params {
        tax3_name?: string;
    }
    interface line_items_import_credit_note_params {
        tax3_amount?: number;
    }
    interface line_items_import_credit_note_params {
        tax4_name?: string;
    }
    interface line_items_import_credit_note_params {
        tax4_amount?: number;
    }
    interface line_items_import_credit_note_params {
        tax5_name?: string;
    }
    interface line_items_import_credit_note_params {
        tax5_amount?: number;
    }
    interface line_items_import_credit_note_params {
        tax6_name?: string;
    }
    interface line_items_import_credit_note_params {
        tax6_amount?: number;
    }
    interface line_items_import_credit_note_params {
        tax7_name?: string;
    }
    interface line_items_import_credit_note_params {
        tax7_amount?: number;
    }
    interface line_items_import_credit_note_params {
        tax8_name?: string;
    }
    interface line_items_import_credit_note_params {
        tax8_amount?: number;
    }
    interface line_items_import_credit_note_params {
        tax9_name?: string;
    }
    interface line_items_import_credit_note_params {
        tax9_amount?: number;
    }
    interface line_items_import_credit_note_params {
        tax10_name?: string;
    }
    interface line_items_import_credit_note_params {
        tax10_amount?: number;
    }
    interface line_item_tiers_import_credit_note_params {
        line_item_id: string;
    }
    interface line_item_tiers_import_credit_note_params {
        starting_unit?: number;
    }
    interface line_item_tiers_import_credit_note_params {
        ending_unit?: number;
    }
    interface line_item_tiers_import_credit_note_params {
        quantity_used?: number;
    }
    interface line_item_tiers_import_credit_note_params {
        unit_amount?: number;
    }
    interface line_item_tiers_import_credit_note_params {
        starting_unit_in_decimal?: string;
    }
    interface line_item_tiers_import_credit_note_params {
        ending_unit_in_decimal?: string;
    }
    interface line_item_tiers_import_credit_note_params {
        quantity_used_in_decimal?: string;
    }
    interface line_item_tiers_import_credit_note_params {
        unit_amount_in_decimal?: string;
    }
    interface discounts_import_credit_note_params {
        entity_type: string;
    }
    interface discounts_import_credit_note_params {
        entity_id?: string;
    }
    interface discounts_import_credit_note_params {
        description?: string;
    }
    interface discounts_import_credit_note_params {
        amount: number;
    }
    interface taxes_import_credit_note_params {
        name: string;
    }
    interface taxes_import_credit_note_params {
        rate: number;
    }
    interface taxes_import_credit_note_params {
        amount?: number;
    }
    interface taxes_import_credit_note_params {
        description?: string;
    }
    interface taxes_import_credit_note_params {
        juris_type?: string;
    }
    interface taxes_import_credit_note_params {
        juris_name?: string;
    }
    interface taxes_import_credit_note_params {
        juris_code?: string;
    }
    interface allocations_import_credit_note_params {
        invoice_id: string;
    }
    interface allocations_import_credit_note_params {
        allocated_amount: number;
    }
    interface allocations_import_credit_note_params {
        allocated_at: number;
    }
    interface linked_refunds_import_credit_note_params {
        amount: number;
    }
    interface linked_refunds_import_credit_note_params {
        payment_method: string;
    }
    interface linked_refunds_import_credit_note_params {
        date: number;
    }
    interface linked_refunds_import_credit_note_params {
        reference_number?: string;
    }
}
