import { ThemePalette } from '@angular/material/core';
import { MIconsService } from './m-icons.service';
import * as i0 from "@angular/core";
/**
* Represents the mapping of an icon used in the application.
*
* This interface defines the properties required to register an icon,
* including the icon type and its file name or path.
*/
export interface IconMapping {
/**
* The unique type identifier for the icon.
* This is the name used to register the icon in the `MatIconRegistry`
* and to reference it throughout the application.
*
* @example
* 'home', 'settings', 'user-profile'
*/
type: string;
/**
* The name or path of the SVG file for the icon.
* This is appended to the base icon path defined in `MIconsService`.
*
* @example
* 'home.svg', 'settings.svg', 'user-profile.svg'
*/
name?: string;
}
/**
* Array of icon mappings used throughout the application.
*
* Each object in this array follows the `IconMapping` interface and represents a unique icon
* that can be used by the application. Icons are registered in the application through the `MIconsService`
* using this mapping. Each mapping defines a `type`, which serves as an identifier for the icon,
* and optionally a `name`, which specifies the SVG file name in the icons directory.
*
* If `name` is not specified, the `type` may correspond to a default icon.
*
* Example usage:
* ```
* { type: 'accident', name: 'accident.svg' }
* ```
*/
export declare const ICONS_MAPPING: IconMapping[];
/**
* @component
* @name MIcons
* @description
* Icon component that wraps Angular Material's icon component to provide a customized icon display.
* The component utilizes the `ICONS_MAPPING` constant for registering a set of icons and relies on
* `MIconsService` to manage icon registration.
*
* ### Usage example
* ```html
*
* ```
*/
export declare class MIcons {
private mIconService;
/**
* Input property that defines the type of icon to display. This should match one of the `type` values
* in `ICONS_MAPPING` to ensure the correct icon is displayed.
*/
type?: string;
/**
* Input property that defines the color palette for the icon. This should match one of the `colors` values
* in `ThemePalette` to ensure the correct color is applied to the icon.
*/
color?: ThemePalette;
/**
* Initializes the component and registers a set of icons defined in the `ICONS_MAPPING` constant.
* Calls `registerIcons` method of `MIconsService` to ensure that all necessary icons are available
* for use within the application.
*
* @param mIconService The MIconsService instance to use for registering icons
*/
constructor(mIconService: MIconsService);
static ɵfac: i0.ɵɵFactoryDeclaration;
static ɵcmp: i0.ɵɵComponentDeclaration;
}