import { Provider, Type } from '@angular/core';
import { AbstractControl, FormGroupDirective, NgForm } from '@angular/forms';
import * as i0 from "@angular/core";
/** Utility provider for `ErrorStateMatcher`. */
export declare const kbqErrorStateMatcherProvider: (errorStateMatcher: Type<ErrorStateMatcher> | ErrorStateMatcher) => Provider;
/**
 * Error state matcher that matches when a control is invalid and form is submitted.
 * Requires use FormGroupDirective or NgForm.
 */
export declare class ShowOnFormSubmitErrorStateMatcher implements ErrorStateMatcher {
    isErrorState(control: AbstractControl | null, form: FormGroupDirective | NgForm | null): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<ShowOnFormSubmitErrorStateMatcher, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<ShowOnFormSubmitErrorStateMatcher>;
}
/** Error state matcher that matches when a control is invalid and dirty or form is submitted. */
export declare class ShowOnControlDirtyErrorStateMatcher implements ErrorStateMatcher {
    isErrorState(control: AbstractControl | null, form: FormGroupDirective | NgForm | null): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<ShowOnControlDirtyErrorStateMatcher, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<ShowOnControlDirtyErrorStateMatcher>;
}
/**
 * Provider that defines how form controls behave with regards to displaying error messages.
 * Error state matcher that matches when a control is invalid and touched or form is submitted.
 */
export declare class ErrorStateMatcher {
    isErrorState(control: AbstractControl | null, form: FormGroupDirective | NgForm | null): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<ErrorStateMatcher, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<ErrorStateMatcher>;
}
