import { ListResult } from '../list_result';
import { RequestWrapper } from "../request_wrapper";
import { Model } from "./model";
import { filter } from "../filter";
export declare class Addon extends Model {
    id: string;
    name: string;
    invoice_name?: string;
    description?: string;
    pricing_model: string;
    type: string;
    charge_type: string;
    price?: number;
    currency_code: string;
    period?: number;
    period_unit: string;
    unit?: string;
    status: string;
    archived_at?: number;
    enabled_in_portal: boolean;
    tax_code?: string;
    hsn_code?: string;
    taxjar_product_code?: string;
    avalara_sale_type?: string;
    avalara_transaction_type?: number;
    avalara_service_type?: number;
    sku?: string;
    accounting_code?: string;
    accounting_category1?: string;
    accounting_category2?: string;
    accounting_category3?: string;
    accounting_category4?: string;
    is_shippable?: boolean;
    shipping_frequency_period?: number;
    shipping_frequency_period_unit?: string;
    resource_version?: number;
    updated_at?: number;
    price_in_decimal?: string;
    included_in_mrr?: boolean;
    channel?: string;
    proration_type?: string;
    invoice_notes?: string;
    taxable?: boolean;
    tax_profile_id?: string;
    meta_data?: any;
    tiers?: Array<Tier>;
    tax_providers_fields?: Array<TaxProvidersField>;
    show_description_in_invoices?: boolean;
    show_description_in_quotes?: boolean;
    static create(params?: _addon.create_params): RequestWrapper;
    static update(addon_id: string, params?: _addon.update_params): RequestWrapper;
    static list(params?: _addon.addon_list_params): RequestWrapper<ListResult>;
    static retrieve(addon_id: string, params?: any): RequestWrapper;
    static delete(addon_id: string, params?: any): RequestWrapper;
    static copy(params?: _addon.copy_params): RequestWrapper;
    static unarchive(addon_id: string, params?: any): RequestWrapper;
}
export declare class Tier extends Model {
    starting_unit: number;
    ending_unit?: number;
    price: number;
    starting_unit_in_decimal?: string;
    ending_unit_in_decimal?: string;
    price_in_decimal?: string;
    pricing_type?: string;
    package_size?: number;
}
export declare class TaxProvidersField extends Model {
    provider_name: string;
    field_id: string;
    field_value: string;
}
export declare namespace _addon {
    interface create_params {
        id: string;
        name: string;
        invoice_name?: string;
        description?: string;
        charge_type: string;
        price?: number;
        currency_code?: string;
        period?: number;
        period_unit?: string;
        pricing_model?: string;
        /**
         * @deprecated Please refer API docs to use other attributes
         */
        type?: string;
        unit?: string;
        enabled_in_portal?: boolean;
        taxable?: boolean;
        tax_profile_id?: string;
        avalara_sale_type?: string;
        avalara_transaction_type?: number;
        avalara_service_type?: number;
        tax_code?: string;
        hsn_code?: string;
        taxjar_product_code?: string;
        invoice_notes?: string;
        meta_data?: any;
        sku?: string;
        accounting_code?: string;
        accounting_category1?: string;
        accounting_category2?: string;
        accounting_category3?: string;
        accounting_category4?: string;
        is_shippable?: boolean;
        shipping_frequency_period?: number;
        shipping_frequency_period_unit?: string;
        included_in_mrr?: boolean;
        show_description_in_invoices?: boolean;
        show_description_in_quotes?: boolean;
        price_in_decimal?: string;
        proration_type?: string;
        status?: string;
        tiers?: Array<tiers_create_params>;
        tax_providers_fields?: Array<tax_providers_fields_create_params>;
    }
    interface update_params {
        name?: string;
        invoice_name?: string;
        description?: string;
        charge_type?: string;
        price?: number;
        currency_code?: string;
        period?: number;
        period_unit?: string;
        pricing_model?: string;
        /**
         * @deprecated Please refer API docs to use other attributes
         */
        type?: string;
        unit?: string;
        enabled_in_portal?: boolean;
        taxable?: boolean;
        tax_profile_id?: string;
        avalara_sale_type?: string;
        avalara_transaction_type?: number;
        avalara_service_type?: number;
        tax_code?: string;
        hsn_code?: string;
        taxjar_product_code?: string;
        invoice_notes?: string;
        meta_data?: any;
        sku?: string;
        accounting_code?: string;
        accounting_category1?: string;
        accounting_category2?: string;
        accounting_category3?: string;
        accounting_category4?: string;
        is_shippable?: boolean;
        shipping_frequency_period?: number;
        shipping_frequency_period_unit?: string;
        included_in_mrr?: boolean;
        show_description_in_invoices?: boolean;
        show_description_in_quotes?: boolean;
        price_in_decimal?: string;
        proration_type?: string;
        tiers?: Array<tiers_update_params>;
        tax_providers_fields?: Array<tax_providers_fields_update_params>;
    }
    interface addon_list_params {
        limit?: number;
        offset?: string;
        id?: filter._string;
        name?: filter._string;
        pricing_model?: filter._enum;
        /**
         * @deprecated Please refer API docs to use other attributes
         */
        type?: filter._enum;
        charge_type?: filter._enum;
        price?: filter._number;
        period?: filter._number;
        period_unit?: filter._enum;
        status?: filter._enum;
        updated_at?: filter._timestamp;
        currency_code?: filter._string;
        channel?: filter._enum;
        include_deleted?: boolean;
    }
    interface copy_params {
        from_site: string;
        id_at_from_site: string;
        id?: string;
        for_site_merging?: boolean;
    }
    interface tiers_create_params {
        starting_unit?: number;
    }
    interface tiers_create_params {
        ending_unit?: number;
    }
    interface tiers_create_params {
        price?: number;
    }
    interface tiers_create_params {
        starting_unit_in_decimal?: string;
    }
    interface tiers_create_params {
        ending_unit_in_decimal?: string;
    }
    interface tiers_create_params {
        price_in_decimal?: string;
    }
    interface tax_providers_fields_create_params {
        provider_name: string;
    }
    interface tax_providers_fields_create_params {
        field_id: string;
    }
    interface tax_providers_fields_create_params {
        field_value: string;
    }
    interface tiers_update_params {
        starting_unit?: number;
    }
    interface tiers_update_params {
        ending_unit?: number;
    }
    interface tiers_update_params {
        price?: number;
    }
    interface tiers_update_params {
        starting_unit_in_decimal?: string;
    }
    interface tiers_update_params {
        ending_unit_in_decimal?: string;
    }
    interface tiers_update_params {
        price_in_decimal?: string;
    }
    interface tax_providers_fields_update_params {
        provider_name: string;
    }
    interface tax_providers_fields_update_params {
        field_id: string;
    }
    interface tax_providers_fields_update_params {
        field_value: string;
    }
}
