import { Injector, Type } from '@angular/core';
import { LayoutComponentMetadata, LayoutComponentTransform } from '@anglr/dynamic/layout';
import { RelationsChangeDetector, RelationsComponentManager, RelationsDebugger, RelationsManager, RelationsProcessor } from '@anglr/dynamic/relations';
import { Logger } from '@anglr/common';
import type { CustomComponentSAComponent } from '../../dynamicItems/customComponent/customComponent.component';
import { ComponentWithId } from '../../interfaces';
/**
 * Service that handles storing, obtaining of placeholder configuration, also correct rendering of placeholder or placeholder container
 */
export declare class PlaceholderHandler<TOptions = unknown> {
    protected componentWithIdType: Type<ComponentWithId>;
    protected customComponent?: CustomComponentSAComponent | undefined;
    /**
     * Indication whether is this handler attached to placeholder or custom component
     */
    protected ɵisPlaceholder: boolean;
    /**
     * Indication whether is attached component in design mode
     */
    protected ɵdesignMode: boolean | undefined | null;
    /**
     * Id of attached component
     */
    protected ɵid: string | undefined | null;
    /**
     * Instance of parent placeholder handler
     */
    protected ɵparent: PlaceholderHandler<TOptions> | undefined | null;
    /**
     * Injector that is assigned with placeholder handler
     */
    protected injector: Injector;
    /**
     * Instance of logger used for logging
     */
    protected logger: Logger;
    /**
     * Gets id of attached component
     */
    protected get id(): string;
    /**
     * Gets indication whether is this handler attached to custom component
     */
    protected get isCustomComponent(): boolean;
    /**
     * Gets indication whether is this handler attached to placeholder
     */
    protected get isPlaceholder(): boolean;
    /**
     * Gets nearest handler for custom component
     */
    protected get nearestCustomComponent(): PlaceholderHandler | undefined | null;
    /**
     * Gets nearest handler for custom component that is in design mode
     */
    protected get nearestDesignCustomComponent(): PlaceholderHandler | undefined | null;
    /**
     * Gets instance of parent placeholder handler
     */
    get parent(): PlaceholderHandler<TOptions> | undefined | null;
    /**
     * Gets indication whether is attached component in design mode
     */
    get designMode(): boolean;
    /**
     * Gets indication whether display placeholder container or just placeholder
     */
    get placeholderContainer(): boolean;
    /**
     * Gets layout designer component transform function
     */
    get layoutDesignerComponentTransform(): LayoutComponentTransform | null;
    /**
     * Relations component manager instance that is used for placeholders
     */
    get relationsComponentManager(): RelationsComponentManager | null;
    /**
     * Relations processor instance that is used for placeholders
     */
    get relationsProcessor(): RelationsProcessor | null;
    /**
     * Relations change detector instance that is used for placeholders
     */
    get relationsChangeDetector(): RelationsChangeDetector | null;
    /**
     * Relations debugger instance that is used for placeholders
     */
    get relationsDebugger(): RelationsDebugger | null;
    /**
     * Relations manager instance that is used for placeholders
     */
    get relationsManager(): RelationsManager | null;
    constructor(componentWithIdType: Type<ComponentWithId>, customComponent?: CustomComponentSAComponent | undefined);
    /**
     * Gets options for placeholder using its id
     * @param id - Id of placeholder for which are options obtained
     */
    getOptions(id: string): LayoutComponentMetadata<TOptions> | undefined | null;
    /**
     * Initialize options for placeholder container
     */
    initOptions(): void;
    /**
     * Finds if there is any related handler with attached custom component
     */
    protected findRelatedCustomComponentHandler(): PlaceholderHandler | undefined | null;
    /**
     * Gets handler, which is attached to custom component which owns this placeholder container
     */
    protected getParentCustomComponentHandler(): PlaceholderHandler<TOptions> | null;
}
//# sourceMappingURL=placeholderHandler.service.d.ts.map