import { ClientConfiguration, RateLimit } from '@sp-api-sdk/common';
import * as axios from 'axios';
import { AxiosInstance, RawAxiosRequestConfig, AxiosPromise } from 'axios';

/**
 * The Selling Partner API for Sellers
 * The [Selling Partner API for Sellers](https://developer-docs.amazon.com/sp-api/docs/sellers-api-v1-reference) (Sellers API) provides essential information about seller accounts, such as:  - The marketplaces a seller can list in - The default language and currency of a marketplace - Whether the seller has suspended listings  Refer to the [Sellers API reference](https://developer-docs.amazon.com/sp-api/docs/sellers-api-v1-reference) for details about this API\'s operations, data types, and schemas.
 *
 * The version of the OpenAPI document: v1
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
interface AWSv4Configuration {
    options?: {
        region?: string;
        service?: string;
    };
    credentials?: {
        accessKeyId?: string;
        secretAccessKey?: string;
        sessionToken?: string;
    };
}
interface ConfigurationParameters {
    apiKey?: string | Promise<string> | ((name: string) => string) | ((name: string) => Promise<string>);
    username?: string;
    password?: string;
    accessToken?: string | Promise<string> | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise<string>);
    awsv4?: AWSv4Configuration;
    basePath?: string;
    serverIndex?: number;
    baseOptions?: any;
    formDataCtor?: new () => any;
}
declare class Configuration {
    /**
     * parameter for apiKey security
     * @param name security name
     */
    apiKey?: string | Promise<string> | ((name: string) => string) | ((name: string) => Promise<string>);
    /**
     * parameter for basic security
     */
    username?: string;
    /**
     * parameter for basic security
     */
    password?: string;
    /**
     * parameter for oauth2 security
     * @param name security name
     * @param scopes oauth2 scope
     */
    accessToken?: string | Promise<string> | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise<string>);
    /**
     * parameter for aws4 signature security
     * @param {Object} AWS4Signature - AWS4 Signature security
     * @param {string} options.region - aws region
     * @param {string} options.service - name of the service.
     * @param {string} credentials.accessKeyId - aws access key id
     * @param {string} credentials.secretAccessKey - aws access key
     * @param {string} credentials.sessionToken - aws session token
     * @memberof Configuration
     */
    awsv4?: AWSv4Configuration;
    /**
     * override base path
     */
    basePath?: string;
    /**
     * override server index
     */
    serverIndex?: number;
    /**
     * base options for axios calls
     */
    baseOptions?: any;
    /**
     * The FormData constructor that will be used to create multipart form data
     * requests. You can inject this here so that execution environments that
     * do not support the FormData class can still run the generated client.
     *
     * @type {new () => FormData}
     */
    formDataCtor?: new () => any;
    constructor(param?: ConfigurationParameters);
    /**
     * Check if the given MIME is a JSON MIME.
     * JSON MIME examples:
     *   application/json
     *   application/json; charset=UTF8
     *   APPLICATION/JSON
     *   application/vnd.company+json
     * @param mime - MIME (Multipurpose Internet Mail Extensions)
     * @return True if the given MIME is JSON, false otherwise.
     */
    isJsonMime(mime: string): boolean;
}

/**
 * The Selling Partner API for Sellers
 * The [Selling Partner API for Sellers](https://developer-docs.amazon.com/sp-api/docs/sellers-api-v1-reference) (Sellers API) provides essential information about seller accounts, such as:  - The marketplaces a seller can list in - The default language and currency of a marketplace - Whether the seller has suspended listings  Refer to the [Sellers API reference](https://developer-docs.amazon.com/sp-api/docs/sellers-api-v1-reference) for details about this API\'s operations, data types, and schemas.
 *
 * The version of the OpenAPI document: v1
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */

interface RequestArgs {
    url: string;
    options: RawAxiosRequestConfig;
}
declare class BaseAPI {
    protected basePath: string;
    protected axios: AxiosInstance;
    protected configuration: Configuration | undefined;
    constructor(configuration?: Configuration, basePath?: string, axios?: AxiosInstance);
}

/**
 * The Selling Partner API for Sellers
 * The [Selling Partner API for Sellers](https://developer-docs.amazon.com/sp-api/docs/sellers-api-v1-reference) (Sellers API) provides essential information about seller accounts, such as:  - The marketplaces a seller can list in - The default language and currency of a marketplace - Whether the seller has suspended listings  Refer to the [Sellers API reference](https://developer-docs.amazon.com/sp-api/docs/sellers-api-v1-reference) for details about this API\'s operations, data types, and schemas.
 *
 * The version of the OpenAPI document: v1
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
/**
 * Represents an address
 */
interface Address {
    /**
     * Street address information.
     */
    'addressLine1': string;
    /**
     * Additional street address information.
     */
    'addressLine2'?: string;
    /**
     * The country code in two-character ISO 3166-1 alpha-2 format.
     */
    'countryCode': string;
    /**
     * The state or province code.
     */
    'stateOrProvinceCode'?: string;
    /**
     * The city.
     */
    'city'?: string;
    /**
     * The postal code.
     */
    'postalCode'?: string;
}

/**
 * The Selling Partner API for Sellers
 * The [Selling Partner API for Sellers](https://developer-docs.amazon.com/sp-api/docs/sellers-api-v1-reference) (Sellers API) provides essential information about seller accounts, such as:  - The marketplaces a seller can list in - The default language and currency of a marketplace - Whether the seller has suspended listings  Refer to the [Sellers API reference](https://developer-docs.amazon.com/sp-api/docs/sellers-api-v1-reference) for details about this API\'s operations, data types, and schemas.
 *
 * The version of the OpenAPI document: v1
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */

/**
 * Information about the seller\'s business. Certain fields may be omitted depending on the seller\'s `businessType`.
 */
interface Business {
    /**
     * The registered business name.
     */
    'name': string;
    'registeredBusinessAddress': Address;
    /**
     * The seller\'s company registration number, if applicable. This field will be absent for individual sellers and sole proprietorships.
     */
    'companyRegistrationNumber'?: string;
    /**
     * The seller\'s company tax identification number, if applicable. This field will be present for certain business types only, such as sole proprietorships.
     */
    'companyTaxIdentificationNumber'?: string;
    /**
     * The non-Latin script version of the registered business name, if applicable.
     */
    'nonLatinName'?: string;
}

/**
 * The Selling Partner API for Sellers
 * The [Selling Partner API for Sellers](https://developer-docs.amazon.com/sp-api/docs/sellers-api-v1-reference) (Sellers API) provides essential information about seller accounts, such as:  - The marketplaces a seller can list in - The default language and currency of a marketplace - Whether the seller has suspended listings  Refer to the [Sellers API reference](https://developer-docs.amazon.com/sp-api/docs/sellers-api-v1-reference) for details about this API\'s operations, data types, and schemas.
 *
 * The version of the OpenAPI document: v1
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
/**
 * Information about an Amazon marketplace where a seller can list items and customers can view and purchase items.
 */
interface Marketplace {
    /**
     * The encrypted marketplace value.
     */
    'id': string;
    /**
     * The marketplace name.
     */
    'name': string;
    /**
     * The ISO 3166-1 alpha-2 format country code of the marketplace.
     */
    'countryCode': string;
    /**
     * The ISO 4217 format currency code of the marketplace.
     */
    'defaultCurrencyCode': string;
    /**
     * The ISO 639-1 format language code of the marketplace.
     */
    'defaultLanguageCode': string;
    /**
     * The domain name of the marketplace.
     */
    'domainName': string;
}

/**
 * The Selling Partner API for Sellers
 * The [Selling Partner API for Sellers](https://developer-docs.amazon.com/sp-api/docs/sellers-api-v1-reference) (Sellers API) provides essential information about seller accounts, such as:  - The marketplaces a seller can list in - The default language and currency of a marketplace - Whether the seller has suspended listings  Refer to the [Sellers API reference](https://developer-docs.amazon.com/sp-api/docs/sellers-api-v1-reference) for details about this API\'s operations, data types, and schemas.
 *
 * The version of the OpenAPI document: v1
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
/**
 * Information that is specific to a seller in a marketplace.
 */
interface Participation {
    /**
     * If `true`, the seller participates in the marketplace. Otherwise `false`.
     */
    'isParticipating': boolean;
    /**
     * Specifies if the seller has suspended listings. `true` if the seller Listing Status is set to Inactive, otherwise `false`.
     */
    'hasSuspendedListings': boolean;
}

/**
 * The Selling Partner API for Sellers
 * The [Selling Partner API for Sellers](https://developer-docs.amazon.com/sp-api/docs/sellers-api-v1-reference) (Sellers API) provides essential information about seller accounts, such as:  - The marketplaces a seller can list in - The default language and currency of a marketplace - Whether the seller has suspended listings  Refer to the [Sellers API reference](https://developer-docs.amazon.com/sp-api/docs/sellers-api-v1-reference) for details about this API\'s operations, data types, and schemas.
 *
 * The version of the OpenAPI document: v1
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */

interface MarketplaceParticipation {
    'marketplace': Marketplace;
    'participation': Participation;
    /**
     * The name of the seller\'s store as displayed in the marketplace.
     */
    'storeName': string;
}

/**
 * The Selling Partner API for Sellers
 * The [Selling Partner API for Sellers](https://developer-docs.amazon.com/sp-api/docs/sellers-api-v1-reference) (Sellers API) provides essential information about seller accounts, such as:  - The marketplaces a seller can list in - The default language and currency of a marketplace - Whether the seller has suspended listings  Refer to the [Sellers API reference](https://developer-docs.amazon.com/sp-api/docs/sellers-api-v1-reference) for details about this API\'s operations, data types, and schemas.
 *
 * The version of the OpenAPI document: v1
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */

/**
 * Information about the seller\'s primary contact.
 */
interface PrimaryContact {
    /**
     * The full name of the seller\'s primary contact.
     */
    'name': string;
    'address': Address;
    /**
     * The non-Latin script version of the primary contact\'s name, if applicable.
     */
    'nonLatinName'?: string;
}

/**
 * The Selling Partner API for Sellers
 * The [Selling Partner API for Sellers](https://developer-docs.amazon.com/sp-api/docs/sellers-api-v1-reference) (Sellers API) provides essential information about seller accounts, such as:  - The marketplaces a seller can list in - The default language and currency of a marketplace - Whether the seller has suspended listings  Refer to the [Sellers API reference](https://developer-docs.amazon.com/sp-api/docs/sellers-api-v1-reference) for details about this API\'s operations, data types, and schemas.
 *
 * The version of the OpenAPI document: v1
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */

/**
 * The response schema for the `getAccount` operation.
 */
interface Account {
    /**
     * List of marketplace participations.
     */
    'marketplaceParticipationList': Array<MarketplaceParticipation>;
    /**
     * The type of business registered for the seller account.
     */
    'businessType': AccountBusinessTypeEnum;
    /**
     * The selling plan details.
     */
    'sellingPlan': AccountSellingPlanEnum;
    'business'?: Business;
    'primaryContact'?: PrimaryContact;
}
declare const AccountBusinessTypeEnum: {
    readonly Charity: "CHARITY";
    readonly Craftsman: "CRAFTSMAN";
    readonly NaturalPersonCompany: "NATURAL_PERSON_COMPANY";
    readonly PublicListed: "PUBLIC_LISTED";
    readonly PrivateLimited: "PRIVATE_LIMITED";
    readonly SoleProprietorship: "SOLE_PROPRIETORSHIP";
    readonly StateOwned: "STATE_OWNED";
    readonly Individual: "INDIVIDUAL";
};
type AccountBusinessTypeEnum = typeof AccountBusinessTypeEnum[keyof typeof AccountBusinessTypeEnum];
declare const AccountSellingPlanEnum: {
    readonly Professional: "PROFESSIONAL";
    readonly Individual: "INDIVIDUAL";
};
type AccountSellingPlanEnum = typeof AccountSellingPlanEnum[keyof typeof AccountSellingPlanEnum];

/**
 * The Selling Partner API for Sellers
 * The [Selling Partner API for Sellers](https://developer-docs.amazon.com/sp-api/docs/sellers-api-v1-reference) (Sellers API) provides essential information about seller accounts, such as:  - The marketplaces a seller can list in - The default language and currency of a marketplace - Whether the seller has suspended listings  Refer to the [Sellers API reference](https://developer-docs.amazon.com/sp-api/docs/sellers-api-v1-reference) for details about this API\'s operations, data types, and schemas.
 *
 * The version of the OpenAPI document: v1
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */

/**
 * The response schema for the `getAccount` operation.
 */
interface GetAccountResponse {
    'payload'?: Account;
    /**
     * A list of error responses returned when a request is unsuccessful.
     */
    'errors'?: Array<Error>;
}

/**
 * The Selling Partner API for Sellers
 * The [Selling Partner API for Sellers](https://developer-docs.amazon.com/sp-api/docs/sellers-api-v1-reference) (Sellers API) provides essential information about seller accounts, such as:  - The marketplaces a seller can list in - The default language and currency of a marketplace - Whether the seller has suspended listings  Refer to the [Sellers API reference](https://developer-docs.amazon.com/sp-api/docs/sellers-api-v1-reference) for details about this API\'s operations, data types, and schemas.
 *
 * The version of the OpenAPI document: v1
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */

/**
 * The response schema for the `getMarketplaceParticipations` operation.
 */
interface GetMarketplaceParticipationsResponse {
    /**
     * List of marketplace participations.
     */
    'payload'?: Array<MarketplaceParticipation>;
    /**
     * A list of error responses returned when a request is unsuccessful.
     */
    'errors'?: Array<Error>;
}

/**
 * The Selling Partner API for Sellers
 * The [Selling Partner API for Sellers](https://developer-docs.amazon.com/sp-api/docs/sellers-api-v1-reference) (Sellers API) provides essential information about seller accounts, such as:  - The marketplaces a seller can list in - The default language and currency of a marketplace - Whether the seller has suspended listings  Refer to the [Sellers API reference](https://developer-docs.amazon.com/sp-api/docs/sellers-api-v1-reference) for details about this API\'s operations, data types, and schemas.
 *
 * The version of the OpenAPI document: v1
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
/**
 * Error response returned when the request is unsuccessful.
 */
interface ModelError {
    /**
     * An error code that identifies the type of error that occurred.
     */
    'code': string;
    /**
     * A message that describes the error condition in a human-readable form.
     */
    'message': string;
    /**
     * Additional details that can help you understand or fix the issue.
     */
    'details'?: string;
}

/**
 * SellersApi - axios parameter creator
 */
declare const SellersApiAxiosParamCreator: (configuration?: Configuration) => {
    /**
     * Returns information about a seller account and its marketplaces.  **Usage Plan:**  | Rate (requests per second) | Burst | | ---- | ---- | | 0.016 | 15 |  The `x-amzn-RateLimit-Limit` response header returns the usage plan rate limits that were applied to the requested operation, when available. The preceding table indicates the default rate and burst values for this operation. Selling partners whose business demands require higher throughput may have higher rate and burst values than those shown here. For more information, refer to [Usage Plans and Rate Limits in the Selling Partner API](https://developer-docs.amazon.com/sp-api/docs/usage-plans-and-rate-limits-in-the-sp-api).
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getAccount: (options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     * Returns a list of marketplaces where the seller can list items and information about the seller\'s participation in those marketplaces.  **Usage Plan:**  | Rate (requests per second) | Burst | | ---- | ---- | | 0.016 | 15 |  The `x-amzn-RateLimit-Limit` response header returns the usage plan rate limits that were applied to the requested operation, when available. The preceding table indicates the default rate and burst values for this operation. Selling partners whose business demands require higher throughput may have higher rate and burst values than those shown here. For more information, refer to [Usage Plans and Rate Limits in the Selling Partner API](https://developer-docs.amazon.com/sp-api/docs/usage-plans-and-rate-limits-in-the-sp-api).
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getMarketplaceParticipations: (options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
};
/**
 * SellersApi - functional programming interface
 */
declare const SellersApiFp: (configuration?: Configuration) => {
    /**
     * Returns information about a seller account and its marketplaces.  **Usage Plan:**  | Rate (requests per second) | Burst | | ---- | ---- | | 0.016 | 15 |  The `x-amzn-RateLimit-Limit` response header returns the usage plan rate limits that were applied to the requested operation, when available. The preceding table indicates the default rate and burst values for this operation. Selling partners whose business demands require higher throughput may have higher rate and burst values than those shown here. For more information, refer to [Usage Plans and Rate Limits in the Selling Partner API](https://developer-docs.amazon.com/sp-api/docs/usage-plans-and-rate-limits-in-the-sp-api).
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getAccount(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<GetAccountResponse>>;
    /**
     * Returns a list of marketplaces where the seller can list items and information about the seller\'s participation in those marketplaces.  **Usage Plan:**  | Rate (requests per second) | Burst | | ---- | ---- | | 0.016 | 15 |  The `x-amzn-RateLimit-Limit` response header returns the usage plan rate limits that were applied to the requested operation, when available. The preceding table indicates the default rate and burst values for this operation. Selling partners whose business demands require higher throughput may have higher rate and burst values than those shown here. For more information, refer to [Usage Plans and Rate Limits in the Selling Partner API](https://developer-docs.amazon.com/sp-api/docs/usage-plans-and-rate-limits-in-the-sp-api).
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getMarketplaceParticipations(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<GetMarketplaceParticipationsResponse>>;
};
/**
 * SellersApi - factory interface
 */
declare const SellersApiFactory: (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) => {
    /**
     * Returns information about a seller account and its marketplaces.  **Usage Plan:**  | Rate (requests per second) | Burst | | ---- | ---- | | 0.016 | 15 |  The `x-amzn-RateLimit-Limit` response header returns the usage plan rate limits that were applied to the requested operation, when available. The preceding table indicates the default rate and burst values for this operation. Selling partners whose business demands require higher throughput may have higher rate and burst values than those shown here. For more information, refer to [Usage Plans and Rate Limits in the Selling Partner API](https://developer-docs.amazon.com/sp-api/docs/usage-plans-and-rate-limits-in-the-sp-api).
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getAccount(options?: RawAxiosRequestConfig): AxiosPromise<GetAccountResponse>;
    /**
     * Returns a list of marketplaces where the seller can list items and information about the seller\'s participation in those marketplaces.  **Usage Plan:**  | Rate (requests per second) | Burst | | ---- | ---- | | 0.016 | 15 |  The `x-amzn-RateLimit-Limit` response header returns the usage plan rate limits that were applied to the requested operation, when available. The preceding table indicates the default rate and burst values for this operation. Selling partners whose business demands require higher throughput may have higher rate and burst values than those shown here. For more information, refer to [Usage Plans and Rate Limits in the Selling Partner API](https://developer-docs.amazon.com/sp-api/docs/usage-plans-and-rate-limits-in-the-sp-api).
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getMarketplaceParticipations(options?: RawAxiosRequestConfig): AxiosPromise<GetMarketplaceParticipationsResponse>;
};
/**
 * SellersApi - object-oriented interface
 */
declare class SellersApi extends BaseAPI {
    /**
     * Returns information about a seller account and its marketplaces.  **Usage Plan:**  | Rate (requests per second) | Burst | | ---- | ---- | | 0.016 | 15 |  The `x-amzn-RateLimit-Limit` response header returns the usage plan rate limits that were applied to the requested operation, when available. The preceding table indicates the default rate and burst values for this operation. Selling partners whose business demands require higher throughput may have higher rate and burst values than those shown here. For more information, refer to [Usage Plans and Rate Limits in the Selling Partner API](https://developer-docs.amazon.com/sp-api/docs/usage-plans-and-rate-limits-in-the-sp-api).
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getAccount(options?: RawAxiosRequestConfig): Promise<axios.AxiosResponse<GetAccountResponse, any, {}>>;
    /**
     * Returns a list of marketplaces where the seller can list items and information about the seller\'s participation in those marketplaces.  **Usage Plan:**  | Rate (requests per second) | Burst | | ---- | ---- | | 0.016 | 15 |  The `x-amzn-RateLimit-Limit` response header returns the usage plan rate limits that were applied to the requested operation, when available. The preceding table indicates the default rate and burst values for this operation. Selling partners whose business demands require higher throughput may have higher rate and burst values than those shown here. For more information, refer to [Usage Plans and Rate Limits in the Selling Partner API](https://developer-docs.amazon.com/sp-api/docs/usage-plans-and-rate-limits-in-the-sp-api).
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getMarketplaceParticipations(options?: RawAxiosRequestConfig): Promise<axios.AxiosResponse<GetMarketplaceParticipationsResponse, any, {}>>;
}

declare const clientRateLimits: RateLimit[];
declare class SellersApiClient extends SellersApi {
    constructor(configuration: ClientConfiguration);
}

export { type Account, AccountBusinessTypeEnum, AccountSellingPlanEnum, type Address, type Business, type GetAccountResponse, type GetMarketplaceParticipationsResponse, type Marketplace, type MarketplaceParticipation, type ModelError, type Participation, type PrimaryContact, SellersApi, SellersApiAxiosParamCreator, SellersApiClient, SellersApiFactory, SellersApiFp, clientRateLimits };
