import { EventEmitter, OnChanges, SimpleChanges } from '@angular/core';
import { MatCheckboxChange } from '@angular/material/checkbox';
import * as i0 from "@angular/core";
/**
* @interface
* @name Line
* @description
* Represents the properties of a transport line, including its colors, identifiers, and type.
*/
export interface Line {
/** The color of the line. */
color: string;
/** The line ID. */
id: string;
/** The full name of the line. */
longName: string;
/** The color for the text displayed on the line. */
textColor: string;
/**the shape of the logo, est surchagre par l'input si existant */
shape?: Shape;
/** The line type, such as `PROXIMO`, `BUS`, `TEAM`, `CHRONO_PERI`. */
type: string;
}
/**
* @interface
* @name disturbanceInfo
* @description
* Represents the properties of a disturbance, including the disturbance level and whether it is outer.
*/
export interface disturbanceInfo {
/** If `true`, the line has a disturbance */
hasDisturbance: boolean;
/** The disturbance level. */
nsv: number;
/** If `true`, the disturbance is outer. */
outer: boolean;
}
export declare enum Shape {
ROUNDED = "rounded",
CIRCLE = "circle",
SQUARE = "square",
RECTANGLE = "rectangle"
}
/**
* @component
* @name MLogoLines
* @description
* A component that displays a logo for a given transport line. It customizes the size, padding,
* and shape of the logo based on the input properties, and calculates optimal font size
* for the line's name display.
*
* ### Usage example
* ```html
*
* ```
*/
export declare class MLogoLines implements OnChanges {
/** The transport line object that defines the logo's content and colors. */
ligne: Line;
/** Padding coefficient for the top of the logo. */
paddingCoefTop: number;
/** Padding coefficient for the left side of the logo. */
paddingCoefLeft: number;
/** The height of the logo. */
height: number;
/** The width of the logo. */
width: number;
/** If `true` display mat-checkbox behind logo-lines */
isCheckbox: boolean;
/** If `true`, displays the line's description. */
description: boolean;
/** If `true`, selects the line. */
checked: boolean;
/** The opacity of the logo. */
opacity: number;
/** Add Logo Disturbance */
disturbance: disturbanceInfo;
/**The shape of the logo */
shape?: Shape;
/** Emits when the line is clicked. */
lineChange: EventEmitter<{
line: Line;
checked: boolean;
}>;
/** The viewBox attribute for SVG scaling, updated based on width and height. */
viewBox: string;
/** The calculated font size for the line's text display. */
fontSize: string;
shortName: string;
longName: string;
lineType: string;
/**les classes à associer au svg du logo */
classes: string;
/**
* @method onClick
* @description
* Emits the `lineClicked` event when the line is clicked.
*
* @returns {void}
*/
clickLine(ligne: Line, evt: MatCheckboxChange): void;
/**
* @method ngOnChanges
* @description
* Updates the component when input properties change. Calculates viewBox, font size, and other
* properties based on the input line data and dimensions.
*
* @param {SimpleChanges} changes - The changes in input properties.
* @returns {void}
*/
ngOnChanges(changes: SimpleChanges): void;
/**
* Attribute class for any disturbances and shape
* @returns {string}
*/
getClass(): string;
getShape(): Shape;
static ɵfac: i0.ɵɵFactoryDeclaration;
static ɵcmp: i0.ɵɵComponentDeclaration;
}