import { SimpleChanges } 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 {
    generateKey: (index: number) => string;
    block: BlockProps["block"];
    context: BlockProps["context"];
    registeredComponents: BlockProps["registeredComponents"];
    linkComponent: BlockProps["linkComponent"];
    get repeatItem(): import("./types").RepeatData[];
    _processedBlock: {
        value: BuilderBlock;
        update: boolean;
    };
    get processedBlock(): BuilderBlock;
    get blockComponent(): import("../../server-index").RegisteredComponent;
    get Tag(): any;
    get canShowBlock(): boolean;
    get childrenWithoutParentComponent(): BuilderBlock[];
    get componentRefProps(): {
        blockChildren: BuilderBlock[];
        componentRef: any;
        componentOptions: any;
        context: BuilderContextInterface;
        linkComponent: any;
        registeredComponents: RegisteredComponents;
        builderBlock: BuilderBlock;
        includeBlockProps: boolean;
        isInteractive: boolean;
    };
    trackByChild0(_: any, child: any): any;
    trackByData1(index: any, data: any): string;
    trackByData2(index: any, data: any): string;
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<Block, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<Block, "block", never, { "block": { "alias": "block"; "required": false; }; "context": { "alias": "context"; "required": false; }; "registeredComponents": { "alias": "registeredComponents"; "required": false; }; "linkComponent": { "alias": "linkComponent"; "required": false; }; }, {}, never, never, true, never>;
}
