import { OnInit } from '@angular/core';
import { MatIconRegistry } from '@angular/material/icon';
import { DomSanitizer } from '@angular/platform-browser';
import { ContractFeeTier, PaymentMethod, Tier } from './payment-fees.model';
import * as i0 from "@angular/core";
/**
* Component for displaying payment fees organized by country, payment method, and tier levels.
*
* @description
* This component renders a comprehensive view of payment fees with the following structure:
* - Groups fees by country
* - Within each country, groups by payment method
* - Within each method, displays fee tiers with fixed amounts and percentage rates
* - Shows whether fees apply to merchant or client side
*
* @example
* ```html
*
* ```
*/
export declare class PaymentFeesComponent implements OnInit {
private matIconRegistry;
private domSanitizer;
/**
* Array of contract fee tiers organized by country, payment method, and tier level.
* @type {ContractFeeTier[]}
*/
data: ContractFeeTier[];
/**
* Columns to display in the fee tier tables.
* @type {string[]}
*/
displayedColumns: string[];
/**
* SVG icon representing merchant-side fees (store/shop icon).
* @private
* @readonly
*/
private readonly MERCHANT_FEE_ICON;
/**
* SVG icon representing client-side fees (group of people icon).
* @private
* @readonly
*/
private readonly CLIENT_FEE_ICON;
/**
* Creates an instance of PaymentFeesComponent.
*
* @param {MatIconRegistry} matIconRegistry - Service for registering custom SVG icons
* @param {DomSanitizer} domSanitizer - Service for sanitizing HTML/SVG content
*/
constructor(matIconRegistry: MatIconRegistry, domSanitizer: DomSanitizer);
/**
* Lifecycle hook that is called after Angular has initialized all data-bound properties.
* Registers custom SVG icons for merchant and client fees.
*
* @returns {void}
*/
ngOnInit(): void;
/**
* Registers custom SVG icons for merchant and client fees with Angular Material's icon registry.
* Handles errors gracefully by logging warnings if registration fails.
*
* @private
* @returns {void}
*/
private registerIcons;
/**
* Converts a country code to its human-readable country name.
*
* @param {string} code - ISO 3166-1 alpha-2 country code (e.g., 'US', 'BR', 'MX')
* @returns {string} The localized country name in English, or the original code if conversion fails
*
* @example
* getCountryName('US') // Returns: 'United States'
* getCountryName('BR') // Returns: 'Brazil'
* getCountryName('INVALID') // Returns: 'INVALID'
*/
getCountryName(code: string): string;
/**
* Formats a payment method code into a human-readable label.
*
* @param {string} method - Payment method code (e.g., 'CREDITCARD', 'PIX', 'BOLETO')
* @returns {string} The formatted payment method name, or the original code if no mapping exists
*
* @example
* formatMethodName('CREDITCARD') // Returns: 'Credit Card'
* formatMethodName('PIX') // Returns: 'PIX'
* formatMethodName('UNKNOWN') // Returns: 'UNKNOWN'
*/
formatMethodName(method: string): string;
/**
* Returns a tooltip text explaining whether a fee applies to the merchant or client side.
*
* @param {boolean} isMerchantFee - True if the fee is charged to the merchant, false if charged to the client
* @returns {string} Tooltip text describing who pays the fee
*
* @example
* feeTooltip(true) // Returns: 'This fee is on the Merchant side'
* feeTooltip(false) // Returns: 'This fee is on the Client side'
*/
feeTooltip(isMerchantFee: boolean): string;
/**
* TrackBy function for Angular's ngFor to optimize rendering of country items.
* Helps Angular identify which items have changed, been added, or removed.
*
* @param {number} index - The index of the item in the array
* @param {ContractFeeTier} country - The contract fee tier object representing a country
* @returns {string} A unique identifier combining index and country code
*/
trackByCountry(index: number, country: ContractFeeTier): string;
/**
* TrackBy function for Angular's ngFor to optimize rendering of payment method items.
* Helps Angular identify which items have changed, been added, or removed.
*
* @param {number} _ - The index of the item (unused)
* @param {PaymentMethod} method - The payment method object
* @returns {string} A unique identifier using the method's name
*/
trackByMethod(_: number, method: PaymentMethod): string;
/**
* TrackBy function for Angular's ngFor to optimize rendering of fee tier items.
* Helps Angular identify which items have changed, been added, or removed.
*
* @param {number} _ - The index of the item (unused)
* @param {Tier} tier - The tier object containing fee information
* @returns {number} A unique identifier using the tier's level
*/
trackByTier(_: number, tier: Tier): number;
static ɵfac: i0.ɵɵFactoryDeclaration;
static ɵcmp: i0.ɵɵComponentDeclaration;
}