import { ChargeEntity, ChargeResult } from "./charge.entity"; import { CredentialEntity } from "./credential.entity"; import { ProviderType } from "./provider.entity"; export declare enum IntegrationPaymentMode { POSTPAID = "postpaid", PREPAID = "prepaid" } export declare enum IntegrationChargeBearerEnum { merchant = "merchant", customer = "customer" } export declare enum IntegrationStatus { active = "active", suspended = "suspended", deleted = "deleted" } export declare class IntegrationEntity extends CredentialEntity { clientId: string; type: ProviderType; logo?: string; channel: string; channelId?: string; provider: string; senderId?: string; label: string; integrationOwnerClientId?: string; channels?: string[]; currencies?: string[]; currency?: string; country: string; description?: string; authorization?: any; chargeIds?: string[]; status: IntegrationStatus; integrationLabel?: string; [x: string]: any; static getIntegrationLabel(integration: IntegrationEntity): string; } export declare enum IntegrationChargeType { fixed = "fixed", percentage = "percentage" } export declare enum IntegrationChargeType { flat = "flat", tier = "tier" } export interface FlatIntegrationCharge { percentage?: number; fixed?: number; } export interface TierIntegrationCharge { lowerBound?: number; upperBound?: number; percentage?: number; fixed?: number; } export declare class IntegrationChargeEntity { type: IntegrationChargeType; value: FlatIntegrationCharge | TierIntegrationCharge[]; } export declare class IntegrationChargeBearer { customer?: number; merchant?: number; } export declare class IntegrationCharge { bearer: IntegrationChargeBearer; platform?: { percentage: number; fixed: number; } | IntegrationChargeEntity; provider?: { percentage: number; fixed: number; } | IntegrationChargeEntity; partner?: IntegrationChargeEntity & { clientId?: string; }; tax?: IntegrationChargeEntity; cap?: { minimum: number; maximum: number; }; custom?: { percentage: number; fixed: number; } | IntegrationChargeEntity; VATOnChargeAndFees?: IntegrationChargeEntity; } export declare enum TrafficAction { REJECT = "REJECT", QUEUE = "QUEUE" } export declare class TrafficControlEntity { id: string; country: string | null; provider: string | null; clientId: string | null; type: ProviderType | null; action?: TrafficAction; statusDescription: string | null; deletedAt?: Date | null; [x: string]: any; } export declare class SecuredIntegrationResponse extends IntegrationEntity { id: string; clientId: string; type: ProviderType; provider: string; logo?: string; label: string; channel: string; channelId?: string; channelLabel?: string; webhook?: string; channels?: string[]; currencies?: string[]; currency?: string; country: string; description?: string; isOwnKeys: boolean; credentials: CredentialEntity; charge: IntegrationCharge | null; charges: ChargeEntity[]; routingData?: Record; authorization?: Record; isRouted?: boolean; integrationOwnerClientId: string; credentialId?: string; credentialLabel?: string; logId?: string; chargeResult?: ChargeResult; trafficControl: TrafficControlEntity | null; static getSecret(integration: SecuredIntegrationResponse, key: string): string | null; }