/**
 * AdvancedBilling
 *
 * This file was automatically generated for Maxio by APIMATIC v3.0 ( https://www.apimatic.io ).
 */
import { ApiResponse, RequestOptions } from '../core.js';
import { SubscriptionNoteResponse } from '../models/subscriptionNoteResponse.js';
import { UpdateSubscriptionNoteRequest } from '../models/updateSubscriptionNoteRequest.js';
import { BaseController } from './baseController.js';
export declare class SubscriptionNotesController extends BaseController {
    /**
     * Creates a note for a subscription.
     *
     * ## How to Use Subscription Notes
     *
     * Notes allow you to record information about a particular Subscription in a free text format.
     *
     * If you have structured data such as birth date, color, etc., consider using Metadata instead.
     *
     * Full documentation on how to use Notes in the Advanced Billing UI can be located [here](https:
     * //maxio.zendesk.com/hc/en-us/articles/24251712214413-Subscription-Summary-Overview).
     *
     * @param subscriptionId  The Chargify id of the subscription.
     * @param body
     * @return Response from the API call
     */
    createSubscriptionNote(subscriptionId: number, body?: UpdateSubscriptionNoteRequest, requestOptions?: RequestOptions): Promise<ApiResponse<SubscriptionNoteResponse>>;
    /**
     * Retrieves a list of notes associated with a subscription. The response will be an array of Notes.
     *
     * @param subscriptionId  The Chargify id of the subscription.
     * @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`.
     * @return Response from the API call
     */
    listSubscriptionNotes({ subscriptionId, page, perPage, }: {
        subscriptionId: number;
        page?: number;
        perPage?: number;
    }, requestOptions?: RequestOptions): Promise<ApiResponse<SubscriptionNoteResponse[]>>;
    /**
     * Retrieves a specific note attached to a subscription.
     *
     * @param subscriptionId  The Chargify id of the subscription.
     * @param noteId          The Advanced Billing id of the note
     * @return Response from the API call
     */
    readSubscriptionNote(subscriptionId: number, noteId: number, requestOptions?: RequestOptions): Promise<ApiResponse<SubscriptionNoteResponse>>;
    /**
     * Updates a note for a subscription.
     *
     * @param subscriptionId  The Chargify id of the subscription.
     * @param noteId          The Advanced Billing id of the note
     * @param body
     * @return Response from the API call
     */
    updateSubscriptionNote(subscriptionId: number, noteId: number, body?: UpdateSubscriptionNoteRequest, requestOptions?: RequestOptions): Promise<ApiResponse<SubscriptionNoteResponse>>;
    /**
     * Deletes a note for a Subscription.
     *
     * @param subscriptionId  The Chargify id of the subscription.
     * @param noteId          The Advanced Billing id of the note
     * @return Response from the API call
     */
    deleteSubscriptionNote(subscriptionId: number, noteId: number, requestOptions?: RequestOptions): Promise<ApiResponse<void>>;
}
//# sourceMappingURL=subscriptionNotesController.d.ts.map