/**
 * AdvancedBilling
 *
 * This file was automatically generated for Maxio by APIMATIC v3.0 ( https://www.apimatic.io ).
 */
import { ApiResponse, RequestOptions } from '../core';
import { DeductServiceCreditRequest } from '../models/deductServiceCreditRequest';
import { IssueServiceCreditRequest } from '../models/issueServiceCreditRequest';
import { ListPrepaymentsFilter } from '../models/listPrepaymentsFilter';
import { ListSubscriptionGroupPrepaymentResponse } from '../models/listSubscriptionGroupPrepaymentResponse';
import { ServiceCredit } from '../models/serviceCredit';
import { ServiceCreditResponse } from '../models/serviceCreditResponse';
import { SubscriptionGroupPrepaymentRequest } from '../models/subscriptionGroupPrepaymentRequest';
import { SubscriptionGroupPrepaymentResponse } from '../models/subscriptionGroupPrepaymentResponse';
import { BaseController } from './baseController';
export declare class SubscriptionGroupInvoiceAccountController extends BaseController {
    /**
     * A prepayment can be added for a subscription group identified by the group's `uid`. This endpoint
     * requires a `amount`, `details`, `method`, and `memo`. On success, the prepayment will be added to
     * the group's prepayment balance.
     *
     * @param uid          The uid of the subscription group
     * @param body
     * @return Response from the API call
     */
    createSubscriptionGroupPrepayment(uid: string, body?: SubscriptionGroupPrepaymentRequest, requestOptions?: RequestOptions): Promise<ApiResponse<SubscriptionGroupPrepaymentResponse>>;
    /**
     * This request will list a subscription group's prepayments.
     *
     * @param uid      The uid of the subscription group
     * @param page     Result records are organized in pages. By default, the first page
     *                                                 of results is displayed. The page parameter specifies a page
     *                                                 number of results to fetch. You can start navigating through the
     *                                                 pages to consume the results. You do this by passing in a page
     *                                                 parameter. Retrieve the next page by adding ?page=2 to the query
     *                                                 string. If there are no results to return, then an empty result
     *                                                 set will be returned. Use in query `page=1`.
     * @param perPage  This parameter indicates how many records to fetch in each
     *                                                 request. Default value is 20. The maximum allowed values is 200;
     *                                                 any per_page value over 200 will be changed to 200. Use in query
     *                                                 `per_page=200`.
     * @param filter   Filter to use for List Prepayments operations
     * @return Response from the API call
     */
    listPrepaymentsForSubscriptionGroup({ uid, page, perPage, filter, }: {
        uid: string;
        page?: number;
        perPage?: number;
        filter?: ListPrepaymentsFilter;
    }, requestOptions?: RequestOptions): Promise<ApiResponse<ListSubscriptionGroupPrepaymentResponse>>;
    /**
     * Credit can be issued for a subscription group identified by the group's `uid`. Credit will be added
     * to the group in the amount specified in the request body. The credit will be applied to group member
     * invoices as they are generated.
     *
     * @param uid          The uid of the subscription group
     * @param body
     * @return Response from the API call
     */
    issueSubscriptionGroupServiceCredit(uid: string, body?: IssueServiceCreditRequest, requestOptions?: RequestOptions): Promise<ApiResponse<ServiceCreditResponse>>;
    /**
     * Credit can be deducted for a subscription group identified by the group's `uid`. Credit will be
     * deducted from the group in the amount specified in the request body.
     *
     * @param uid          The uid of the subscription group
     * @param body
     * @return Response from the API call
     */
    deductSubscriptionGroupServiceCredit(uid: string, body?: DeductServiceCreditRequest, requestOptions?: RequestOptions): Promise<ApiResponse<ServiceCredit>>;
}
