import { InputSignal } from "@angular/core";
import type { BuilderContextInterface, RegisteredComponents } from "../../context/types";
import type { BuilderBlock } from "../../types/builder-block";
import * as i0 from "@angular/core";
export type BlockProps = {
    block: BuilderBlock;
    context: BuilderContextInterface;
    registeredComponents: RegisteredComponents;
    linkComponent: any;
};
export default class Block {
    protected readonly generateKey: (index: number) => string;
    block: InputSignal<BlockProps["block"]>;
    context: InputSignal<BlockProps["context"]>;
    registeredComponents: InputSignal<BlockProps["registeredComponents"]>;
    linkComponent: InputSignal<BlockProps["linkComponent"]>;
    _processedBlock: import("@angular/core").WritableSignal<{
        value: BuilderBlock;
        update: boolean;
    }>;
    repeatItem: import("@angular/core").Signal<import("./types").RepeatData[]>;
    processedBlock: import("@angular/core").Signal<BuilderBlock>;
    blockComponent: import("@angular/core").Signal<import("../../server-index").RegisteredComponent>;
    Tag: import("@angular/core").Signal<any>;
    canShowBlock: import("@angular/core").Signal<boolean>;
    childrenWithoutParentComponent: import("@angular/core").Signal<BuilderBlock[]>;
    componentRefProps: import("@angular/core").Signal<{
        blockChildren: BuilderBlock[];
        componentRef: any;
        componentOptions: any;
        context: BuilderContextInterface;
        linkComponent: any;
        registeredComponents: RegisteredComponents;
        builderBlock: BuilderBlock;
        includeBlockProps: boolean;
        isInteractive: boolean;
    }>;
    trackByChild0(_: number, child: any): any;
    trackByData1(index: number, data: any): string;
    trackByData2(index: number, data: any): string;
    constructor();
    ngAfterViewInit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<Block, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<Block, "block", never, { "block": { "alias": "block"; "required": false; "isSignal": true; }; "context": { "alias": "context"; "required": false; "isSignal": true; }; "registeredComponents": { "alias": "registeredComponents"; "required": false; "isSignal": true; }; "linkComponent": { "alias": "linkComponent"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}
