import { CoreComponent } from "cmf.core/src/core";
import * as ng from "@angular/core";
import { ColumnViewRowModel } from "./columnViewStructure";
import { ResultMessageBag } from "../resultMessage/resultMessageBag";
/**
* @whatItDoes
* ColumnViewRow Component
*
* @howToUse
* Private component used in ColumnViewColumn
*
* ### Inputs
* `ColumnViewRowModel` : **model** - Column view row model ;
* `boolean` : **selected** - Gets or sets if the current row is selected or not ;
* `boolean` : **multiSelection** - Controls wether each row can be selected using a checkbox .
*
* ### Outputs
* `ColumnViewRowModel` : **action** - Triggered when an action (inside of row) is selected ;
* `ColumnViewRowModel` : **remove** - Triggered when the action remove (inside of row) is clicked ;
* `ColumnViewRowModel` : **leafMutate** - This event intends to signal when a leaf becomes a node ;
* `ColumnViewRowModel` : **multiSelectionChange** - Event triggered when the row multi selection changes .
*
* ### Example
* To use the component, assume this HTML Template as an example:
*
* ```HTML
*
* ```
*
*/
export declare class ColumnViewRow extends CoreComponent implements ng.DoCheck {
/**
* Row Model
*/
model: ColumnViewRowModel;
/**
* Gets or sets if the current row is selected or not
*/
isSelected: boolean;
/**
* Is Group
*/
isGroup: boolean;
/**
* Haves any children
*/
hasChildren: boolean;
/**
* Macro can remove action
*/
canRemove: boolean;
/**
* If remove button is to be presented as disabled.
* Remove logic isn't applied.
*/
canRemoveDisabled: boolean;
/**
* Controls wether each row can be selected using a checkbox
*/
multiSelection: boolean;
/**
* Controls wether the user can multi select this row
*/
multiSelectionDisabled: boolean;
/**
* Even if we can in fact remove the row, we may not be interested in presenting the remove action on a row basis
*/
skipRemoveOnRowLevel: boolean;
isRequired: boolean;
name: string;
value: string;
cssClass: string;
iconClass: string;
actionIconClass: string;
actionTitle: string;
actionText: string;
infoIconClass: string;
errorIcon: boolean;
errorMessages: ResultMessageBag[];
isMultiSelected: boolean;
action: ng.EventEmitter;
remove: ng.EventEmitter;
/**
* Event triggered when the row multi selection changes
*/
multiSelectionChange: ng.EventEmitter;
/**
* This event intends to signal when a leaf becomes a node
*/
leafMutate: ng.EventEmitter;
requiredSpacer: boolean;
/**
* Macro can order rows
*/
isOrderable: boolean;
constructor(elementRef: ng.ElementRef);
private handleModelChange;
ngDoCheck(): void;
/**
* On Row Action - notify parent
* @param event
*/
onAction(event: MouseEvent): void;
/**
* When a checkbox is checked emit the change
* @param value value of the new selection
*/
onMultiSelection(value: boolean): void;
/**
* On Remove - If remove allowed, notify parent
* @param event
*/
onRemove(event: MouseEvent): void;
}