/**
 * Shell Card Management APIsLib
 *
 * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ).
 */
import { ApiResponse, RequestOptions } from '../core.js';
import { AccountReq } from '../models/accountReq.js';
import { AccountRes } from '../models/accountRes.js';
import { AuditReq } from '../models/auditReq.js';
import { AuditResponse } from '../models/auditResponse.js';
import { CardGroupReq } from '../models/cardGroupReq.js';
import { CardGroupRes } from '../models/cardGroupRes.js';
import { CardTypeReq } from '../models/cardTypeReq.js';
import { CardTypeRes } from '../models/cardTypeRes.js';
import { CreateCardGroupRequest } from '../models/createCardGroupRequest.js';
import { CreateCardGroupRes } from '../models/createCardGroupRes.js';
import { CustomerReq } from '../models/customerReq.js';
import { CustomerRes } from '../models/customerRes.js';
import { LoggedInUserReq } from '../models/loggedInUserReq.js';
import { LoggedInUserRes } from '../models/loggedInUserRes.js';
import { PayerReq } from '../models/payerReq.js';
import { PayerRes } from '../models/payerRes.js';
import { UpdateCardGroupRequest } from '../models/updateCardGroupRequest.js';
import { UpdateCardGroupRes } from '../models/updateCardGroupRes.js';
import { BaseController } from './baseController.js';
export declare class CustomerController extends BaseController {
    /**
     * This operation allows querying the user data of the logged in user.
     * This operation should be called only after successful authentication of the end user in client
     * application. This operation will return the user access details such as payers and/or accounts.
     * This operation will also validate that logged in user has access to the requested operation, on
     * failure it will return HasAPIAccess flag as false in the response.
     *
     * @param requestId    Mandatory UUID (according to RFC 4122 standards) for requests and
     *                                               responses. This will be played back in the response from the request.
     * @param body
     * @return Response from the API call
     */
    loggedinUser(requestId: string, body: LoggedInUserReq, requestOptions?: RequestOptions): Promise<ApiResponse<LoggedInUserRes>>;
    /**
     * This API allows querying the payer accounts details from the Shell Cards
     * Platform. It provides flexible search criteria for searching payer
     * information and supports paging.
     *
     * Paging is applicable only when all the
     * payers passed in the input are from the same ColCo.
     *
     * However, paging will
     * be ignored and the API will return all the matching data by merging the
     * data queried from each ColCo when payers passed in the input are from
     * multiple ColCos.
     *
     *
     * @param requestId    Mandatory UUID (according to RFC 4122 standards) for requests and
     *                                        responses. This will be played back in the response from the request.
     * @param body
     * @return Response from the API call
     */
    customerPayers(requestId: string, body: PayerReq, requestOptions?: RequestOptions): Promise<ApiResponse<PayerRes>>;
    /**
     * This API allows querying the card delivery addresses of a given account from the Shell Cards
     * Platform. Only active delivery addresses will be returned.
     *
     *
     * @param requestId    Mandatory UUID (according to RFC 4122 standards) for requests and
     *                                           responses. This will be played back in the response from the request.
     * @param body
     * @return Response from the API call
     */
    customerDetail(requestId: string, body: CustomerReq, requestOptions?: RequestOptions): Promise<ApiResponse<CustomerRes>>;
    /**
     * This API allows querying the customer account details from the Shell Cards Platform. It provides a
     * flexible search criterion and supports pagination.
     *
     * @param requestId    Mandatory UUID (according to RFC 4122 standards) for requests and
     *                                          responses. This will be played back in the response from the request.
     * @param body
     * @return Response from the API call
     */
    postCardAccounts(requestId: string, body: AccountReq, requestOptions?: RequestOptions): Promise<ApiResponse<AccountRes>>;
    /**
     *
     * This API provides allows querying the active card types that are associated to the given account.
     *
     * The API returns the card type configurations, purchase categories associated with the card type and
     * the card type restriction limits.
     *
     *
     * @param requestId    Mandatory UUID (according to RFC 4122 standards) for requests and
     *                                           responses. This will be played back in the response from the request.
     * @param body
     * @return Response from the API call
     */
    customerCardType(requestId: string, body: CardTypeReq, requestOptions?: RequestOptions): Promise<ApiResponse<CardTypeRes>>;
    /**
     * This API allows querying the card group details from the Shell Cards
     * Platform. It provides flexible search criteria and supports paging.
     *
     * When the account is not passed in the input and card group type is configured as
     * â€˜Verticalâ€™ in the cards platform, this API will return all card groups from
     * the payer as well as from all the accounts under the payer.
     *
     * When the account is not passed in the input and card group type is configured as
     * â€˜Horizontalâ€™ in cards platform, this API will return all card groups
     * configured directly under the payer.
     *
     *
     * @param requestId    Mandatory UUID (according to RFC 4122 standards) for requests and
     *                                            responses. This will be played back in the response from the request.
     * @param body
     * @return Response from the API call
     */
    cardGroups(requestId: string, body: CardGroupReq, requestOptions?: RequestOptions): Promise<ApiResponse<CardGroupRes>>;
    /**
     * This operation allows users to fetch audit data of account or card operations performed by users of
     * a given customer
     *
     * The audit data includes details of below API operations
     *
     *
     *
     * * Order Card
     *
     * * Create Card Group
     *
     * * PIN reminder
     *
     * * Move Cards
     *
     * * Update Card Status
     *
     * * Update Card Group
     *
     * * Auto renew
     *
     * * Bulk card order
     *
     * * Bulk card block
     *
     * * Bulk Card Order (Multi Account)
     *
     * * BCOSummary
     *
     * * BCOMultiAccountSummary
     *
     * * BCBSummary
     *
     * * Mobile Payment Registration
     *
     * * Fund Transfer (Scheduled & Realtime)
     *
     * * Delivery Address Update.
     *
     * @param requestId    Mandatory UUID (according to RFC 4122 standards) for requests and
     *                                        responses. This will be played back in the response from the request.
     * @param body         request body
     * @return Response from the API call
     */
    auditReport(requestId: string, body?: AuditReq, requestOptions?: RequestOptions): Promise<ApiResponse<AuditResponse>>;
    /**
     * This API allows creating a new Card Group in the Shell Cards Platform. It will
     * also allow moving of cards (up to 500 cards) into the newly created
     * card-group.
     *
     * Move Card requests are queued after
     * passing the below validations
     *
     * - Given PAN matches with only one
     * card.
     * - Card is allowed to be moved to the Target Card Group and/or
     * Target account requested.
     * - There is no pending Move Card request for
     * the same card in the queue which is submitted on the same date
     * (customerâ€™s local) and is yet to be processed or has been processed
     * successfully
     *
     *
     * @param requestId    Mandatory UUID (according to RFC 4122 standards) for
     *                                                      requests and responses. This will be played back in the
     *                                                      response from the request.
     * @param body
     * @return Response from the API call
     */
    customerCreateCardGroup(requestId: string, body: CreateCardGroupRequest, requestOptions?: RequestOptions): Promise<ApiResponse<CreateCardGroupRes>>;
    /**
     * This API allows updating or removing a Card Group in the Shell Cards
     * Platform.
     *
     * It also allows moving of cards out of a card group or from one card group to another existing card
     * group.
     *
     * The request for updating or removing of the card group, creationg of a new card group (where-
     * applicable) and moving of card into another card group will be queued after passing the basic
     * validations.
     *
     *
     * @param requestId    Mandatory UUID (according to RFC 4122 standards) for
     *                                                      requests and responses. This will be played back in the
     *                                                      response from the request.
     * @param body
     * @return Response from the API call
     */
    customerUpdateCardGroup(requestId: string, body: UpdateCardGroupRequest, requestOptions?: RequestOptions): Promise<ApiResponse<UpdateCardGroupRes>>;
}
//# sourceMappingURL=customerController.d.ts.map