import { BehaviorSubject, Observable } from 'rxjs';
import { FormPiece } from './piece';
import { AttributeChange, IFormConfig, PieceDefinition } from '../../interfaces/form-config.interface';
export declare abstract class FormPiecePropagate extends FormPiece {
    protected _attributeChange: BehaviorSubject<AttributeChange | null>;
    constructor(pieceDefinition: PieceDefinition, formConfig: IFormConfig);
    get attributeChange(): Observable<AttributeChange | null>;
    propagateAttribute(name: string, value: any): void;
    setCustomAttribute(name: string, value: any): void;
    setVisibility(visible: boolean, forced?: boolean | null): void;
    set enabled(enabled: boolean);
    formStateChange(state: any): void;
}
