import Service from "../../service";
import { ListStoresResponse } from '../../typings/management/models';
import { Store } from '../../typings/management/models';
import { StoreCreationRequest } from '../../typings/management/models';
import { StoreCreationWithMerchantCodeRequest } from '../../typings/management/models';
import { UpdateStoreRequest } from '../../typings/management/models';
import { IRequest } from "../../typings/requestOptions";
export default class AccountStoreLevelApi extends Service {
    /**
     * @summary Get a list of stores
     * @param merchantId The unique identifier of the merchant account.
     * @param pageNumber The number of the page to fetch.
     * @param pageSize The number of items to have on a page, maximum 100. The default is 10 items on a page.
     * @param reference The reference of the store.
     */
    listStoresByMerchantId(merchantId: string, requestOptions?: IRequest.Options): Promise<ListStoresResponse>;
    /**
     * @summary Get a store
     * @param merchantId The unique identifier of the merchant account.
     * @param storeId The unique identifier of the store.
     */
    getStore(merchantId: string, storeId: string, requestOptions?: IRequest.Options): Promise<Store>;
    /**
     * @summary Get a list of stores
     * @param pageNumber The number of the page to fetch.
     * @param pageSize The number of items to have on a page, maximum 100. The default is 10 items on a page.
     * @param reference The reference of the store.
     * @param merchantId The unique identifier of the merchant account.
     */
    listStores(requestOptions?: IRequest.Options): Promise<ListStoresResponse>;
    /**
     * @summary Get a store
     * @param storeId The unique identifier of the store.
     */
    getStoreById(storeId: string, requestOptions?: IRequest.Options): Promise<Store>;
    /**
     * @summary Update a store
     * @param merchantId The unique identifier of the merchant account.
     * @param storeId The unique identifier of the store.
     * @param updateStoreRequest
     */
    updateStore(merchantId: string, storeId: string, updateStoreRequest: UpdateStoreRequest, requestOptions?: IRequest.Options): Promise<Store>;
    /**
     * @summary Update a store
     * @param storeId The unique identifier of the store.
     * @param updateStoreRequest
     */
    updateStoreById(storeId: string, updateStoreRequest: UpdateStoreRequest, requestOptions?: IRequest.Options): Promise<Store>;
    /**
     * @summary Create a store
     * @param merchantId The unique identifier of the merchant account.
     * @param storeCreationRequest
     */
    createStoreByMerchantId(merchantId: string, storeCreationRequest: StoreCreationRequest, requestOptions?: IRequest.Options): Promise<Store>;
    /**
     * @summary Create a store
     * @param storeCreationWithMerchantCodeRequest
     */
    createStore(storeCreationWithMerchantCodeRequest: StoreCreationWithMerchantCodeRequest, requestOptions?: IRequest.Options): Promise<Store>;
}
