/**
 * Lob
 * The Lob API is organized around REST. Our API is designed to have predictable, resource-oriented URLs and uses HTTP response codes to indicate any API errors. <p> Looking for our [previous documentation](https://lob.github.io/legacy-docs/)?
 *
 * The version of the OpenAPI document: 1.3.0
 * Contact: lob-openapi@lob.com
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
import { AxiosPromise, AxiosInstance, AxiosRequestConfig } from "axios";
import { Configuration } from "../configuration";
import { RequestArgs, BaseAPI } from "../base";
import { Card } from "../models";
import { CardDeletion } from "../models";
import { CardEditable } from "../models";
import { CardList } from "../models";
import { CardUpdatable } from "../models";
/**
 * CardsApi - axios parameter creator
 * @export
 */
export declare const CardsApiAxiosParamCreator: (configuration?: Configuration) => {
    /**
     * Creates a new card given information
     * @summary create
     * @param {CardEditable} cardEditable
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    cardCreate: (cardEditable: CardEditable, options?: AxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Delete an existing card. You need only supply the unique identifier that was returned upon card creation.
     * @summary delete
     * @param {string} cardId id of the card
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    cardDelete: (cardId: string, options?: AxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Retrieves the details of an existing card. You need only supply the unique customer identifier that was returned upon card creation.
     * @summary get
     * @param {string} cardId id of the card
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    cardRetrieve: (cardId: string, options?: AxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Update the details of an existing card. You need only supply the unique identifier that was returned upon card creation.
     * @summary update
     * @param {string} cardId id of the card
     * @param {CardUpdatable} cardUpdatable
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    cardUpdate: (cardId: string, cardUpdatable: CardUpdatable, options?: AxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Returns a list of your cards. The cards are returned sorted by creation date, with the most recently created addresses appearing first.
     * @summary list
     * @param {number} [limit] How many results to return.
     * @param {string} [before] A reference to a list entry used for paginating to the previous set of entries. This field is pre-populated in the &#x60;previous_url&#x60; field in the return response.
     * @param {string} [after] A reference to a list entry used for paginating to the next set of entries. This field is pre-populated in the &#x60;next_url&#x60; field in the return response.
     * @param {Array<string>} [include] Request that the response include the total count by specifying &#x60;include[]&#x3D;total_count&#x60;.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    cardsList: (limit?: number, before?: string, after?: string, include?: Array<string>, options?: AxiosRequestConfig) => Promise<RequestArgs>;
};
/**
 * CardsApi - functional programming interface
 * @export
 */
export declare const CardsApiFp: (configuration?: Configuration) => {
    /**
     * Creates a new card given information
     * @summary create
     * @param {CardEditable} cardEditable
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    cardCreate(cardEditable: CardEditable, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Card>>;
    /**
     * Delete an existing card. You need only supply the unique identifier that was returned upon card creation.
     * @summary delete
     * @param {string} cardId id of the card
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    cardDelete(cardId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<CardDeletion>>;
    /**
     * Retrieves the details of an existing card. You need only supply the unique customer identifier that was returned upon card creation.
     * @summary get
     * @param {string} cardId id of the card
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    cardRetrieve(cardId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Card>>;
    /**
     * Update the details of an existing card. You need only supply the unique identifier that was returned upon card creation.
     * @summary update
     * @param {string} cardId id of the card
     * @param {CardUpdatable} cardUpdatable
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    cardUpdate(cardId: string, cardUpdatable: CardUpdatable, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Card>>;
    /**
     * Returns a list of your cards. The cards are returned sorted by creation date, with the most recently created addresses appearing first.
     * @summary list
     * @param {number} [limit] How many results to return.
     * @param {string} [before] A reference to a list entry used for paginating to the previous set of entries. This field is pre-populated in the &#x60;previous_url&#x60; field in the return response.
     * @param {string} [after] A reference to a list entry used for paginating to the next set of entries. This field is pre-populated in the &#x60;next_url&#x60; field in the return response.
     * @param {Array<string>} [include] Request that the response include the total count by specifying &#x60;include[]&#x3D;total_count&#x60;.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    cardsList(limit?: number, before?: string, after?: string, include?: Array<string>, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<CardList>>;
};
/**
 * CardsApi - object-oriented interface
 * @export
 * @class CardsApi
 * @extends {BaseAPI}
 */
export declare class CardsApi extends BaseAPI {
    /**
     * Creates a new card given information
     * @summary create
     * @param {CardEditable} cardEditable
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CardsApi
     */
    create(cardEditable: CardEditable, options?: AxiosRequestConfig): Promise<Card>;
    /**
     * Delete an existing card. You need only supply the unique identifier that was returned upon card creation.
     * @summary delete
     * @param {string} cardId id of the card
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CardsApi
     */
    delete(cardId: string, options?: AxiosRequestConfig): Promise<CardDeletion>;
    /**
     * Retrieves the details of an existing card. You need only supply the unique customer identifier that was returned upon card creation.
     * @summary get
     * @param {string} cardId id of the card
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CardsApi
     */
    get(cardId: string, options?: AxiosRequestConfig): Promise<Card>;
    /**
     * Update the details of an existing card. You need only supply the unique identifier that was returned upon card creation.
     * @summary update
     * @param {string} cardId id of the card
     * @param {CardUpdatable} cardUpdatable
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CardsApi
     */
    update(cardId: string, cardUpdatable: CardUpdatable, options?: AxiosRequestConfig): Promise<Card>;
    /**
     * Returns a list of your cards. The cards are returned sorted by creation date, with the most recently created addresses appearing first.
     * @summary list
     * @param {number} [limit] How many results to return.
     * @param {string} [before] A reference to a list entry used for paginating to the previous set of entries. This field is pre-populated in the &#x60;previous_url&#x60; field in the return response.
     * @param {string} [after] A reference to a list entry used for paginating to the next set of entries. This field is pre-populated in the &#x60;next_url&#x60; field in the return response.
     * @param {Array<string>} [include] Request that the response include the total count by specifying &#x60;include[]&#x3D;total_count&#x60;.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CardsApi
     */
    list(limit?: number, before?: string, after?: string, include?: Array<string>, options?: AxiosRequestConfig): Promise<CardList>;
}
/**
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
