import { ApplicationContext, BillingCycle, PaymentPreferences, PricingScheme, ShippingAmount, Subscriber, Taxes } from './Commons';
export interface CreatePlanRequest {
    product_id: string;
    name: string;
    description?: string;
    status?: string;
    billing_cycles: BillingCycle[];
    payment_preferences?: PaymentPreferences;
    taxes?: Taxes;
}
declare enum Op {
    add = "add",
    remove = "remove",
    replace = "replace",
    move = "move",
    copy = "copy",
    test = "test"
}
export interface UpdateRequest {
    op: Op;
    path: string;
    value: string;
    from?: string;
}
export interface ReviseRequest {
    plan_id?: string;
    quantity?: string;
    plan?: {
        billing_cycles: BillingCycle[];
        payment_preferences?: PaymentPreferences;
        taxes?: Taxes;
    };
    application_context: ApplicationContext;
}
export interface UpdatePricingRequest {
    pricing_schemes: {
        billing_cycle_sequence: number;
        pricing_scheme: PricingScheme;
    }[];
}
export interface CreateSubscriptionRequest {
    plan_id: string;
    quantity?: string;
    custom_id?: string;
    start_time?: string;
    shipping_amount?: ShippingAmount;
    subscriber?: Subscriber;
    application_context: ApplicationContext;
}
export interface CaptureSubscriptionRequest {
    note?: string;
    capture_type?: string;
    amount?: {
        currency_code: string;
        value: string;
    };
}
export interface CreateOrderRequest {
    intent: string;
    purchase_units: {
        amount: {
            currency_code: string;
            value: string;
        };
    }[];
    application_context: ApplicationContext;
}
export interface UpdateOrderRequest {
    purchase_units: {
        amount: {
            currency_code: string;
            value: string;
        };
    }[];
}
export interface CaptureOrderRequest {
    note?: string;
    amount?: {
        currency_code: string;
        value: string;
    };
}
export interface RefundCapturedPaymentRequest {
    amount?: {
        value: string;
        currency_code: string;
    };
    invoice_id?: string;
    note_to_payer?: string;
}
export {};
