import * as _angular_core from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import { BaseModelHolder } from 'primeng/basemodelholder';

declare class BaseEditableHolder<PT = any> extends BaseModelHolder<PT> implements ControlValueAccessor {
    /**
     * There must be a value (if set).
     * @defaultValue false
     * @group Props
     */
    required: _angular_core.InputSignalWithTransform<boolean | undefined, unknown>;
    /**
     * When present, it specifies that the component should have invalid state style.
     * @defaultValue false
     * @group Props
     */
    invalid: _angular_core.InputSignalWithTransform<boolean | undefined, unknown>;
    /**
     * When present, it specifies that the component should have disabled state style.
     * @defaultValue false
     * @group Props
     */
    disabled: _angular_core.InputSignalWithTransform<boolean | undefined, unknown>;
    /**
     * When present, it specifies that the name of the input.
     * @defaultValue undefined
     * @group Props
     */
    name: _angular_core.InputSignal<string | undefined>;
    _disabled: _angular_core.WritableSignal<boolean>;
    $disabled: _angular_core.Signal<boolean>;
    onModelChange: Function;
    onModelTouched: Function;
    writeDisabledState(value: boolean): void;
    writeControlValue(value: any, setModelValue?: (value: any) => void): void;
    /**** Angular ControlValueAccessors ****/
    writeValue(value: any): void;
    registerOnChange(fn: Function): void;
    registerOnTouched(fn: Function): void;
    setDisabledState(val: boolean): void;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<BaseEditableHolder<any>, never>;
    static ɵdir: _angular_core.ɵɵDirectiveDeclaration<BaseEditableHolder<any>, never, never, { "required": { "alias": "required"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}

export { BaseEditableHolder };
