import { SimpleChanges } from '@angular/core';
import { MetadataStorage } from '@anglr/dynamic';
import { LayoutComponent, LayoutComponentBase, LayoutComponentMetadata } from '@anglr/dynamic/layout';
import { LayoutComponentsIteratorService } from '@anglr/dynamic/layout-editor';
import { RelationsComponent, RelationsComponentManager, RelationsManager, RelationsProcessor } from '@anglr/dynamic/relations';
import { RelationsNodeMetadata } from '@anglr/dynamic/relations-editor';
import { PromiseOr } from '@jscrpt/common';
import { CustomComponentComponentOptions, CustomComponentRelationsOptions } from './customComponent.options';
import { ComponentInputsRelations } from '../componentInputs/componentInputs.relations';
import { ComponentOutputsRelations } from '../componentOutputs/componentOutputs.relations';
import { ComponentWithId } from '../../interfaces';
import * as i0 from "@angular/core";
/**
 * Component used for displaying custom component
 */
export declare class CustomComponentSAComponent extends LayoutComponentBase<CustomComponentComponentOptions> implements LayoutComponent<CustomComponentComponentOptions>, RelationsComponent<CustomComponentRelationsOptions>, ComponentWithId {
    /**
     * Storage for layout metadata
     */
    protected layoutMetadataStorage: MetadataStorage<LayoutComponentMetadata>;
    /**
     * Storage for relations metadata
     */
    protected relationsMetadataStorage: MetadataStorage<RelationsNodeMetadata[]> | null;
    /**
     * Instance of relations manager
     */
    protected relationsManager: RelationsManager | null;
    /**
     * Parent relations processor instance
     */
    protected parentRelationsProcessor: RelationsProcessor | null;
    /**
     * Parent relations component manager
     */
    protected parentComponentManager: RelationsComponentManager | null;
    /**
     * Service used for obtaining iterators that goes over all components in metadata
     */
    protected layoutMetadataIterator: LayoutComponentsIteratorService;
    /**
     * Instance of inputs relations if it exists
     */
    protected inputsRelations: ComponentInputsRelations | null;
    /**
     * Instance of outputs relations if it exists
     */
    protected outputsRelations: ComponentOutputsRelations | null;
    /**
     * Instance of metadata to be displayed
     */
    protected metadata: LayoutComponentMetadata | undefined | null;
    /**
     * @inheritdoc
     */
    id: string;
    /**
     * @inheritdoc
     */
    relationsOptions: CustomComponentRelationsOptions | undefined | null;
    /**
     * Method that allows processing of custom component data
     * @param _name - Name of custom component
     */
    processCustomComponentData(_name: string): PromiseOr<void>;
    /**
     * @inheritdoc
     */
    setId(id: string): void;
    /**
     * @inheritdoc
     */
    protected afterInit(): Promise<void>;
    /**
     * @inheritdoc
     */
    protected onChanges(changes: SimpleChanges): PromiseOr<void>;
    /**
     * @inheritdoc
     */
    protected onDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<CustomComponentSAComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<CustomComponentSAComponent, "custom-component", never, {}, {}, never, never, true, never>;
}
//# sourceMappingURL=customComponent.component.d.ts.map