import { Generic } from "cmf.core/src/core"; import { ValidationCheckEvent } from "cmf.core/src/domain/extensions/feedback"; import { ResultMessageBag, ResultMessageType } from "../../components/resultMessage/resultMessageBag"; import { ElementRef } from "@angular/core"; export interface OnValidateArgs { context: any; resultMessages: Array; } export interface OnValidate { /** * On Validate model interface * @param context the context to validate * @param model the model to validate * @returns success if the validation requirements were find true */ onValidate(context: OnValidateArgs, model?: ValidatorModel): Promise; /** * Resets the validation status * For example a input that is invalid because a onValidate implementation, will * have is invalid styling cleared * @returns success if the reset operation could be triggered with success */ reset?(): Promise; } export interface OnValidationTriggered { onValidationTriggered(event: ValidationCheckEvent): void; } export { ResultMessageBag, ResultMessageType }; export declare class ValidatorModel extends Generic { instance: OnValidate; component: OnValidate; children: ValidatorModel[]; private _subscribedFunctions; validate(context: OnValidateArgs): Promise; /** * Resets all the validation elements */ resetAll(): Promise; /** * Show Result Messages as feedback */ showMessageAsFeedback(...resultMessages: ResultMessageBag[]): void; /** * Get the onValidate instance own validation model. * @param searchInstance Instance to search for */ getOwnModel(searchInstance: OnValidate): ValidatorModel; /** * Subscribe the validation check * @param elementRef ElementRef * @param onValidationTriggeredImplementation Object that implements {@see OnValidationTriggered} interface. */ subscribe(elementRef: ElementRef, onValidationTriggeredImplementation: OnValidationTriggered): void; /** * Subscribe the validation check * @param elementRef ElementRef * @param onValidationTriggeredImplementation Object that implements {@see OnValidationTriggered} interface. */ unsubscribe(elementRef: ElementRef, onValidationTriggeredImplementation: OnValidationTriggered): void; }