import { BuyProductDTO, GetByPackageProductGroupDTO, GetByProductGroupDTO, GetProductsByGroupDTO, PackageListItemDTO, ProductListItemDTO, ProductPackageDTO, ProductPurchaseRespDTO, ProductPurchaseValidationRespDTO, ProductRequirementDTO, ProductRequirementFormDTO, RefDTO } from 'src/modules/product/products.dto';
import { ProductService } from 'src/modules/product/product.service';
import { IAuthParam } from '@serene-dev/la-nest-library';
import { TransactionService } from './transaction.service';
import { TransactionQueryDTO } from 'src/dtos/transaction.dto';
export declare class ProductController {
    protected service: ProductService;
    protected transService: TransactionService;
    constructor(service: ProductService, transService: TransactionService);
    getEnums(auth: IAuthParam): string | {
        [name: string]: string[];
    };
    getGroupsLite(): string | import("../../interfaces/index.interface").ISlugTitle<string>[];
    getAllProducts(): string | ProductListItemDTO[];
    getProductsByGroup(param: GetProductsByGroupDTO): string | import("../../interfaces/index.interface").ISlugTitle<import("src/modules/product/product.enum").EProduct>[];
    getAllPackages(): string | PackageListItemDTO[];
    getPackagesByProduct(param: GetByProductGroupDTO): string | Omit<PackageListItemDTO, "group" | "product">[];
    getPackagesFullByProduct(param: GetByProductGroupDTO): string | import("../../interfaces/index.interface").ISlugTitle<import("src/modules/product/product.enum").EProductPackage>[];
    getPackageDetail(param: GetByPackageProductGroupDTO): string | ProductPackageDTO;
    getResponseCodes(): string | {
        "00": string;
        "02": string;
        "03": string;
        "04": string;
        "05": string;
        "06": string;
    };
    buyProduct(param: BuyProductDTO, requirements: ProductRequirementDTO, auth: IAuthParam): Promise<string | ProductPurchaseRespDTO>;
    validateBuyProduct(param: BuyProductDTO, requirements: ProductRequirementDTO, auth: IAuthParam): Promise<string | ProductPurchaseValidationRespDTO>;
    getProductRequirementsList(param: GetByPackageProductGroupDTO): string | ProductRequirementFormDTO<{
        [x: string]: any;
    }>[];
    getProductRequirementsMap(param: GetByPackageProductGroupDTO): string | {
        [x: string]: any;
    };
    getTransactionByRef(param: RefDTO): Promise<string | {
        requirement: object;
        productPackageKey: import("src/modules/product/product.enum").EProductPackage;
        productKey: import("src/modules/product/product.enum").EProduct;
        providerKey?: import("../../enums/provider.enum").EProvider;
        groupKey: import("src/modules/product/product.enum").EProductGroup;
        ref?: string;
        clientPaymentRef: string;
        recipientName?: string;
        client?: import("../../entities/client.entity").ClientEntity;
        status: import("src/modules/product/product.enum").ETransactionStatus;
        errorCode?: import("src/modules/product/product.enum").EProductPurchaseErrorCode;
        error?: any;
        response?: any;
        price: number;
        provider?: import("../../entities/provider.entity").ProviderEntity;
        active?: boolean;
        id?: string;
        meta?: object;
        createdAt?: string;
        updatedAt?: string;
        creatorId?: string;
        updaterId?: string;
        creator?: import("@serene-dev/la-nest-library").SDKAuthEntity;
        updater?: import("@serene-dev/la-nest-library").SDKAuthEntity;
    }>;
    searchTransactions(query: TransactionQueryDTO): Promise<string | import("@serene-dev/la-nest-library").ISearchResponse<import("./transaction.entity").TransactionEntity>>;
}
