import { AbstractControl, FormControl } from '@angular/forms';
import type { AnyObject } from '@ngify/core';
import { TemplateRefHolder } from '../directives';
import type { AbstractSchema } from '../schemas';
import * as i0 from "@angular/core";
export interface WidgetTemplateContext<S extends AbstractSchema, C extends AbstractControl = FormControl> {
    schema: S;
    control: C;
    model: AnyObject;
}
export declare abstract class AbstractWidget<C> extends TemplateRefHolder<C> {
    protected readonly contextGuard: C;
    static ɵfac: i0.ɵɵFactoryDeclaration<AbstractWidget<any>, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<AbstractWidget<any>, never, never, {}, {}, never, never, true, never>;
}
