import { AbstractEntity } from '../../abstractEntity'; export declare enum ProgramFields { REFERENCE = "reference", NAME = "name", ASSOCIATED_SUBSCRIPTION_PROGRAM = "associatedSubscriptionProgram", LOGO = "logo", CATEGORY = "category", LINKS = "links", EXTRA_INFORMATION = "extraInformation" } export declare enum ProgramLinksFields { PROGRAM = "program", PRODUCTS = "products" } export declare enum ProgramExtraInfoFields { RESELLER = "reseller", END_CUSTOMER = "endCustomer", ORDER = "order" } export declare enum ProgramExtraInfoItemFields { NAME = "name", LABEL = "label", TYPE = "type", REGEX = "regex", MANDATORY = "mandatory", DESCRIPTION = "description" } export declare type ProgramType = { [ProgramFields.REFERENCE]?: string; [ProgramFields.NAME]: string; [ProgramFields.ASSOCIATED_SUBSCRIPTION_PROGRAM]: string; [ProgramFields.LOGO]: string; [ProgramFields.CATEGORY]: string; [ProgramFields.LINKS]: ProgramLinksType; [ProgramFields.EXTRA_INFORMATION]: ExtraInfoType; }; export declare type ProgramLinksType = { [ProgramLinksFields.PROGRAM]: string; [ProgramLinksFields.PRODUCTS]: string; }; export declare type ExtraInfoType = { [ProgramExtraInfoFields.RESELLER]: ExtraInfoItemType[]; [ProgramExtraInfoFields.END_CUSTOMER]: ExtraInfoItemType[]; [ProgramExtraInfoFields.ORDER]: ExtraInfoItemType[]; }; export declare type ExtraInfoItemType = { [ProgramExtraInfoItemFields.NAME]: string; [ProgramExtraInfoItemFields.LABEL]: string; [ProgramExtraInfoItemFields.TYPE]: string; [ProgramExtraInfoItemFields.REGEX]: string; [ProgramExtraInfoItemFields.MANDATORY]: boolean; [ProgramExtraInfoItemFields.DESCRIPTION]?: string; }; export declare class Program extends AbstractEntity { #private; constructor(input: ProgramType); get reference(): string | undefined; get name(): string; get associatedSubscriptionProgram(): string; get logo(): string; get category(): string; get links(): { program: string; products: string; }; get extraInformation(): ExtraInfoType; toJSON(): ProgramType; }