import { TemplateRef } from '@angular/core';
import { IIdentified } from '@c8y/client';
export interface ISelectModalObject {
    groupId: string | number;
    body: ISelectModalBodyPart[];
    options: ISelectModalOption[];
    additionalInformation?: ISelectModalBodyPart;
}
export interface ISelectModalOption {
    body: ISelectModalBodyPart[];
    obj: IIdentified;
    selected?: boolean;
    template?: TemplateRef<any>;
}
export interface ISelectModalBodyPart {
    value: string;
    class?: string;
}
/**
 * Use event to trigger an update on a select modal entry.
 */
export interface IUpdateItemEvent<T> {
    /** Object refering to the item that is to be updated */
    object: ISelectModalObject;
    /** Allows to define a template that will be rendered next to the item option label. */
    template?: TemplateRef<T>;
    /**
     * A function to call whenever an item is updated.
     * Allows to read or modify the object attached to the updated item,
     * e.g. to set a flag on the object.
     */
    mapper?: (obj: IIdentified) => IIdentified;
}
export interface ModalLabels {
    ok?: string;
    cancel?: string;
}
export declare enum ModalSelectionMode {
    SINGLE = "single",
    MULTI = "multi"
}
//# sourceMappingURL=select-modal.model.d.ts.map