/**
 * 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 { Address } from "../models";
import { AddressDeletion } from "../models";
import { AddressEditable } from "../models";
import { AddressList } from "../models";
/**
 * AddressesApi - axios parameter creator
 * @export
 */
export declare const AddressesApiAxiosParamCreator: (configuration?: Configuration) => {
    /**
     * Creates a new address given information
     * @summary create
     * @param {AddressEditable} addressEditable
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    addressCreate: (addressEditable: AddressEditable, options?: AxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Deletes the details of an existing address.
     * @summary delete
     * @param {string} adrId id of the address
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    addressDelete: (adrId: string, options?: AxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Retrieves the details of an existing address.
     * @summary get
     * @param {string} adrId id of the address
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    addressRetrieve: (adrId: string, options?: AxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Returns a list of your addresses.
     * @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 {{ [key: string]: string; }} [dateCreated] Filter by date created.
     * @param {{ [key: string]: string; }} [metadata] Filter by metadata key-value pair&#x60;.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    addressesList: (limit?: number, before?: string, after?: string, include?: Array<string>, dateCreated?: {
        [key: string]: string;
    } | undefined, metadata?: {
        [key: string]: string;
    } | undefined, options?: AxiosRequestConfig) => Promise<RequestArgs>;
};
/**
 * AddressesApi - functional programming interface
 * @export
 */
export declare const AddressesApiFp: (configuration?: Configuration) => {
    /**
     * Creates a new address given information
     * @summary create
     * @param {AddressEditable} addressEditable
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    addressCreate(addressEditable: AddressEditable, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Address>>;
    /**
     * Deletes the details of an existing address.
     * @summary delete
     * @param {string} adrId id of the address
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    addressDelete(adrId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<AddressDeletion>>;
    /**
     * Retrieves the details of an existing address.
     * @summary get
     * @param {string} adrId id of the address
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    addressRetrieve(adrId: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Address>>;
    /**
     * Returns a list of your addresses.
     * @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 {{ [key: string]: string; }} [dateCreated] Filter by date created.
     * @param {{ [key: string]: string; }} [metadata] Filter by metadata key-value pair&#x60;.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    addressesList(limit?: number, before?: string, after?: string, include?: Array<string>, dateCreated?: {
        [key: string]: string;
    } | undefined, metadata?: {
        [key: string]: string;
    } | undefined, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<AddressList>>;
};
/**
 * AddressesApi - object-oriented interface
 * @export
 * @class AddressesApi
 * @extends {BaseAPI}
 */
export declare class AddressesApi extends BaseAPI {
    /**
     * Creates a new address given information
     * @summary create
     * @param {AddressEditable} addressEditable
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AddressesApi
     */
    create(addressEditable: AddressEditable, options?: AxiosRequestConfig): Promise<Address>;
    /**
     * Deletes the details of an existing address.
     * @summary delete
     * @param {string} adrId id of the address
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AddressesApi
     */
    delete(adrId: string, options?: AxiosRequestConfig): Promise<AddressDeletion>;
    /**
     * Retrieves the details of an existing address.
     * @summary get
     * @param {string} adrId id of the address
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AddressesApi
     */
    get(adrId: string, options?: AxiosRequestConfig): Promise<Address>;
    /**
     * Returns a list of your addresses.
     * @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 {{ [key: string]: string; }} [dateCreated] Filter by date created.
     * @param {{ [key: string]: string; }} [metadata] Filter by metadata key-value pair&#x60;.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AddressesApi
     */
    list(limit?: number, before?: string, after?: string, include?: Array<string>, dateCreated?: {
        [key: string]: string;
    }, metadata?: {
        [key: string]: string;
    }, options?: AxiosRequestConfig): Promise<AddressList>;
}
/**
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
