import { EInputType, EProduct, EProductDuration, EProductGroup, EProductPackage, EProductPurchaseErrorCode } from 'src/modules/product/product.enum';
import { EProvider } from 'src/enums/provider.enum';
import { EGender } from '../authentication/enums/authentication.enum';
export declare class GetProductsByGroupDTO {
    group: EProductGroup;
}
export declare class GroupListItemDTO {
    slug: EProductGroup;
    title: string;
}
export declare class GetByProductGroupDTO extends GetProductsByGroupDTO {
    product: EProduct;
}
export declare class ProductListItemDTO {
    group: EProductGroup;
    slug: EProduct;
    title: string;
}
export declare class GetByPackageProductGroupDTO extends GetByProductGroupDTO {
    package: EProductPackage;
}
export declare class PackageListItemDTO {
    group: EProductGroup;
    product: EProduct;
    slug: EProductPackage;
    title: string;
    inactive: boolean;
    price: number;
}
export declare class BuyProductDTO extends GetByPackageProductGroupDTO {
}
export declare class ProductRequirementFormDTO<T extends {
    [x: string]: any;
} = {
    [x: string]: any;
}> {
    defaultValue?: any;
    field?: keyof T;
    value?: string;
    hint?: string;
    decimalPlaces?: number;
    label?: string;
    max?: number;
    min?: number;
    multiple?: boolean;
    options?: {
        value: string;
        label: string;
    }[];
    readonly optionsMap: {
        [x: string]: {
            value: string;
            label: string;
        };
    };
    placeholder?: string;
    readonly?: boolean;
    nullable?: boolean;
    type?: EInputType;
    constructor(obj: Partial<ProductRequirementFormDTO>);
}
export declare class ProductPackageDTO {
    title: string;
    inactive?: boolean;
    description?: string;
    slug?: EProductPackage;
    price?: number;
    duration?: EProductDuration;
    requirements?: ProductRequirementFormDTO[];
    providers?: EProvider[];
}
export declare class ProductInsuranceRequirementDTO {
    paymentRef?: string;
    userId: string;
    sponsorMsisdn: string;
    beneficiaryMsisdn: string;
    beneficiaryFullName: string;
    beneficiaryDOB: string;
    beneficiaryGender: EGender;
    beneficiaryEmail: string;
    sponsorFullName: string;
    sponsorEmail: string;
}
export declare class ProductTransportRequirementDTO {
    paymentRef?: string;
    userId: string;
    amount: number;
}
export declare class ProductInternetRequirementDTO {
    paymentRef?: string;
    userId: string;
    email: string;
}
export declare class ProductAirtimeRequirementDTO extends ProductInternetRequirementDTO {
    amount: number;
}
export declare class ProductRequirementDTO implements Partial<ProductInsuranceRequirementDTO>, Partial<ProductInternetRequirementDTO>, Partial<ProductAirtimeRequirementDTO> {
    paymentRef: string;
    userId?: string;
    email?: string;
    sponsorMsisdn?: string;
    beneficiaryMsisdn?: string;
    beneficiaryFullName?: string;
    beneficiaryDOB?: string;
    beneficiaryGender?: EGender;
    beneficiaryEmail?: string;
    sponsorFullName?: string;
    sponsorEmail?: string;
    amount?: number;
}
export declare class ProductPurchaseValidationRespDTO {
    success: boolean;
    error: boolean;
    errorMessage?: string;
    errorCode?: EProductPurchaseErrorCode;
}
export declare class ProductPurchaseRespDTO extends ProductPurchaseValidationRespDTO {
    ref: string;
}
export declare class RefDTO {
    ref: string;
}
