import { HttpClient } from '@angular/common/http';
import { CouponContainerModel, CouponLineContainerModel, CouponSerialNumberContainerModel } from '../../../../../../models/aggregates/erp/coupon';
import { ApiResponseModel, ApiVisa, BasicApiResponseModel, Pagination, PagingResponseModel } from '../../shared';
import { Observable } from 'rxjs';
import { Optional } from 'typescript-optional';
import { VoucherSummaryResponseDto } from '../../../data-transfer-objects/alg/cc/voucher-summary-response-dto.model';
import { serialNumberInquiryResponseDto } from '../../../data-transfer-objects/alg/cc';
import { CouponRedemptionRequestDtoModel } from '../../../data-transfer-objects';
import { BaseApiPublicLoginTemplateService } from '../../shared/base-api-public-login-template.service';
export declare class CouponService extends BaseApiPublicLoginTemplateService<CouponContainerModel, CouponContainerModel, CouponContainerModel> {
    constructor(http: HttpClient);
    static filesToFormData(files: File[], formDataKeyValue: Optional<string>): FormData;
    private static fileToFormData;
    addFilesWithDetails(formData: FormData, subjectGuid: any, visa: ApiVisa): Observable<Object>;
    replaceFileWithDetails(formData: FormData, imageGuid: any, visa: ApiVisa): Observable<Object>;
    deleteFile(extensionGuid: any, visa: ApiVisa): Observable<Object>;
    getFile(extGuid: string, visa: ApiVisa): Observable<Blob>;
    getByCriteriaHdr(pagination: Pagination, visa: ApiVisa): Observable<PagingResponseModel<CouponContainerModel>>;
    getByGuidHdr(guid: string, visa: ApiVisa): Observable<BasicApiResponseModel<CouponContainerModel>>;
    getByCriteriaLine(pagination: Pagination, visa: ApiVisa): Observable<PagingResponseModel<CouponSerialNumberContainerModel>>;
    getByGuidLine(guid: string, visa: ApiVisa): Observable<BasicApiResponseModel<CouponSerialNumberContainerModel>>;
    generateSerialNumber(hdrGuid: string, count: string, snLength: string, visa: ApiVisa): Observable<ApiResponseModel<CouponContainerModel>>;
    cancelSerialNumber(lineGuid: string, cancel: boolean, visa: ApiVisa): Observable<ApiResponseModel<CouponContainerModel>>;
    assignToEntity(lineGuid: string, entityHdrGuid: string, visa: ApiVisa): Observable<ApiResponseModel<CouponContainerModel>>;
    assignToEntityLoginEntityEp(lineGuid: string, entityHdrGuid: string, visa: ApiVisa): Observable<ApiResponseModel<CouponContainerModel>>;
    getLinesBackOffice(pagination: Pagination, visa: ApiVisa): Observable<PagingResponseModel<CouponLineContainerModel>>;
    generateSNBackOffice(hdrGuid: string, count: string, snLength: string, spLength: string, softpin: string, prefix: string, urlKeyGeneration: boolean, urlKeyLength: number, visa: ApiVisa): Observable<ApiResponseModel<CouponContainerModel>>;
    generateSNLoginEntity(hdrGuid: string, entityHdrGuid: string, visa: ApiVisa): Observable<ApiResponseModel<CouponContainerModel>>;
    updateInquiryBackOffice(lineGuid: string, visa: ApiVisa): Observable<ApiResponseModel<CouponContainerModel>>;
    cancelSNBackOffice(lineGuid: string, cancel: boolean, visa: ApiVisa): Observable<ApiResponseModel<CouponContainerModel>>;
    uploadSNFileBackOffice(formData: FormData, hdrGuid: string, visa: ApiVisa): Observable<Object>;
    getVoucherSummary(hdrGuid: string, visa: ApiVisa): Observable<ApiResponseModel<VoucherSummaryResponseDto>>;
    getSerialNumberInquiryHeaderPublic(voucherHdrCode: string, lineGuid: string, visa: ApiVisa): Observable<ApiResponseModel<serialNumberInquiryResponseDto>>;
    getSerialNumberInquiryPublic(lineGuid: string, visa: ApiVisa): Observable<ApiResponseModel<serialNumberInquiryResponseDto>>;
    redeemSerialNumber(couponLineGuid: string, entityGuid: string, visa: ApiVisa): Observable<ApiResponseModel<CouponLineContainerModel>>;
    redeemSerialNumberBackOffice(guidList: string[], redeem: boolean, visa: ApiVisa): Observable<ApiResponseModel<any>>;
    SerialNumberInquiryPublicWithAccessDetails(couponLineGuid: string, accessKeyId: string, accessKeySecret: string, visa: ApiVisa): Observable<ApiResponseModel<serialNumberInquiryResponseDto>>;
    SerialNumberInquiryHeaderPublicWithAccessDetails(voucherHdrCode: string, lineGuid: string, accessKeyId: string, accessKeySecret: string, visa: ApiVisa): Observable<ApiResponseModel<serialNumberInquiryResponseDto>>;
    SerialNumberRedemptionHeaderPublicWithAccessDetails(couponRedemptionRequest: CouponRedemptionRequestDtoModel, redeem: boolean, visa: ApiVisa): Observable<BasicApiResponseModel<boolean>>;
    getCouponByEntityGuid(visa: ApiVisa): Observable<ApiResponseModel<CouponContainerModel>>;
    getUsedCoupons(serverDocType: string, entityHdrGuid: string, visa: ApiVisa): Observable<ApiResponseModel<CouponContainerModel>>;
    syncLineRedeemableDates(body: {
        hdrGuid: string;
        redeemableDateFrom: string;
        redeemableDateTo: string;
    }, visa: ApiVisa): Observable<ApiResponseModel<any>>;
    getHdrByCriteriaWebsiteEp(pagination: Pagination, visa: ApiVisa, website_hdr_guid: string): Observable<PagingResponseModel<CouponContainerModel>>;
}
