/**
 * @typedef {import('../validate/Validator').Validator} Validator
 * @typedef {import('@lion/core').TemplateResult} TemplateResult
 * @typedef {Object} messageMap
 * @property {string | Node} message
 * @property {string} type
 * @property {Validator} [validator]
 */
/**
 * @desc Takes care of accessible rendering of error messages
 * Should be used in conjunction with FormControl having ValidateMixin applied
 */
export class LionValidationFeedback extends LitElement {
    static get properties(): {
        feedbackData: {
            attribute: boolean;
        };
    };
    /**
     * @overridable
     * @param {Object} opts
     * @param {string | Node | TemplateResult } opts.message message or feedback node or TemplateResult
     * @param {string} [opts.type]
     * @param {Validator} [opts.validator]
     * @protected
     */
    protected _messageTemplate({ message }: {
        message: string | Node | TemplateResult;
        type?: string | undefined;
        validator?: import("../validate/Validator").Validator | undefined;
    }): string | Node | TemplateResult;
    currentType: string | undefined;
    removeMessage: number | undefined;
    /** @type {messageMap[]} */
    feedbackData: messageMap[] | undefined;
}
export type Validator = import('../validate/Validator').Validator;
export type TemplateResult = import('@lion/core').TemplateResult;
export type messageMap = {
    message: string | Node;
    type: string;
    validator?: import("../validate/Validator").Validator | undefined;
};
import { LitElement } from "@lion/core";
