import { FormGroup, FormArray, AbstractControl } from "@angular/forms";
import { BaseComponent } from "./base.component";
import { Roles } from "cadlearning.dto";
import { Injector } from "@angular/core";
import { BaseUserService } from "../../services/baseuser.service";
export declare class EditBaseComponent<TUserService extends BaseUserService> extends BaseComponent<TUserService> {
    Working: boolean;
    ActionMessage: string | null;
    private actionTimer;
    private actionTimerSubscription;
    CMSRoles: Roles[];
    constructor(injector: Injector);
    Ctl(fg: FormGroup, path: string): AbstractControl<any, any> | null;
    CtlIndicator(fg: FormGroup, path: string): {
        "is-invalid"?: undefined;
        "is-valid"?: undefined;
    } | {
        "is-invalid": boolean;
        "is-valid": boolean;
    };
    CtlHasErrors(fg: FormGroup, path: string): boolean | null;
    CtlsDisable(fg: FormGroup, path: string[]): void;
    CtlsEnable(fg: FormGroup, path: string[]): void;
    CtlsReset(fg: FormGroup, path: string[]): void;
    IndicatorCss<T>(ctl: AbstractControl<T> | null): {
        "is-invalid"?: undefined;
        "is-valid"?: undefined;
    } | {
        "is-invalid": boolean;
        "is-valid": boolean;
    };
    HasErrors<T>(ctl: AbstractControl<T> | null): boolean;
    GroupReset(fg: FormGroup): void;
    protected Validate(fg: FormGroup): boolean;
    protected ResetForm(fg: FormGroup, message: string, delay?: number): void;
    protected SetActionMessage(message: string, delay?: number, cb?: Function): void;
    CtlValue(fg: FormGroup, path: string): any;
    FormToObject<T>(fg: FormGroup, obj: T): void;
    FormToNewObject<T>(fg: FormGroup, includeFields?: string[] | null, skipFields?: string[] | null, unassignedFields?: string[] | null): T;
    ObjectToForm(obj: any): FormGroup;
    MapFormArray<T>(fa: AbstractControl, includeFields?: string[] | null, skipFields?: string[] | null, unassignedFields?: string[] | null): T[];
    ToFormArray(ctl: AbstractControl): FormArray<any>;
    ToFormGroup(ctl: AbstractControl): FormGroup<any>;
}
//# sourceMappingURL=editbase.component.d.ts.map