/**
 * @packageDocumentation
 * @module utils
 */
import { FormItemControlDirective } from '@alauda/ui';
import { ComponentFactoryResolver, OnDestroy, OnInit, TemplateRef, ViewContainerRef } from '@angular/core';
import { NgControl } from '@angular/forms';
import { Observable } from 'rxjs';
import * as i0 from "@angular/core";
export declare class ReadonlyFieldDirective implements OnInit, OnDestroy {
    private readonly control;
    private readonly cfr;
    private readonly viewContainerRef;
    private readonly controlDirective;
    aclReadonlyField: boolean;
    aclReadonlyField$: Observable<boolean>;
    hidden: boolean;
    private isControlRequired;
    private spanComponentRef;
    private readonly templateContext;
    private readonly destroy$;
    template: TemplateRef<any>;
    context: object;
    get isHidden(): boolean;
    constructor(control: NgControl, cfr: ComponentFactoryResolver, viewContainerRef: ViewContainerRef, controlDirective: FormItemControlDirective);
    private setValue;
    ngOnInit(): void;
    private applyValidators;
    private clearValidators;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ReadonlyFieldDirective, [null, null, null, { optional: true; self: true; }]>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<ReadonlyFieldDirective, "[aclReadonlyField]", never, { "aclReadonlyField": { "alias": "aclReadonlyField"; "required": false; }; "hidden": { "alias": "hidden"; "required": false; }; "template": { "alias": "aclReadonlyFieldTemplate"; "required": false; }; "context": { "alias": "aclReadonlyFieldTemplateContext"; "required": false; }; }, {}, never, never, true, never>;
}
export declare class SpanComponent<T = unknown> {
    data: T;
    setData(value: T): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<SpanComponent<any>, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SpanComponent<any>, "ng-component", never, {}, {}, never, never, false, never>;
}
