import { ListResult } from '../list_result';
import { RequestWrapper } from "../request_wrapper";
import { Model } from "./model";
import { filter } from "../filter";
export declare class Usage extends Model {
    id?: string;
    usage_date: number;
    subscription_id: string;
    item_price_id: string;
    invoice_id?: string;
    line_item_id?: string;
    quantity: string;
    source?: string;
    note?: string;
    resource_version?: number;
    updated_at?: number;
    created_at: number;
    static create(subscription_id: string, params?: _usage.create_params): RequestWrapper;
    static retrieve(subscription_id: string, params?: _usage.retrieve_params): RequestWrapper;
    static delete(subscription_id: string, params?: _usage.delete_params): RequestWrapper;
    static list(params?: _usage.usage_list_params): RequestWrapper<ListResult>;
    static pdf(params?: _usage.pdf_params): RequestWrapper;
}
export declare namespace _usage {
    interface create_params {
        id?: string;
        item_price_id: string;
        quantity: string;
        usage_date: number;
        /**
         * @deprecated Please refer API docs to use other attributes
         */
        dedupe_option?: string;
        note?: string;
    }
    interface retrieve_params {
        id: string;
    }
    interface delete_params {
        id: string;
    }
    interface usage_list_params {
        limit?: number;
        offset?: string;
        id?: filter._string;
        subscription_id?: filter._string;
        usage_date?: filter._timestamp;
        updated_at?: filter._timestamp;
        item_price_id?: filter._string;
        invoice_id?: filter._string;
        source?: filter._enum;
        "sort_by[asc]"?: string;
        "sort_by[desc]"?: string;
    }
    interface pdf_params {
        disposition_type?: string;
        invoice?: invoice_pdf_params;
    }
    interface invoice_pdf_params {
        id: string;
    }
}
