import { Logger } from '@anglr/common';
import { DynamicItemLoader } from '@anglr/dynamic';
import { LayoutComponentDef, LayoutComponentMetadata } from '@anglr/dynamic/layout';
import { LayoutComponentsChildrenIteratorItem } from './layoutComponentsIterator.interface';
/**
 * Iterator for layout components children metadata
 */
export declare class LayoutComponentsChildrenIterator<TOptions = any> {
    protected layoutMetadata: LayoutComponentMetadata<TOptions>;
    protected loader: DynamicItemLoader<LayoutComponentDef>;
    protected logger?: Logger | undefined;
    /**
     * Array of layout component iterator children items
     */
    protected items: LayoutComponentsChildrenIteratorItem[];
    /**
     * Indication whether was iterator initialized
     */
    protected initialized: boolean;
    /**
     * Initialization promise
     */
    protected initPromise: Promise<void> | null;
    /**
     * Async iterator for layout components children metadata
     */
    [Symbol.asyncIterator](): AsyncIterator<LayoutComponentsChildrenIteratorItem>;
    constructor(layoutMetadata: LayoutComponentMetadata<TOptions>, loader: DynamicItemLoader<LayoutComponentDef>, logger?: Logger | undefined);
    /**
     * Gets children in layout components metadata hierarchy
     */
    protected getChildren(): Promise<void>;
    /**
     * Gets children metadata for single layout component metadata
     * @param metadata - Metadata for layout component
     */
    protected getComponent(metadata: LayoutComponentMetadata<TOptions>): Promise<void>;
    /**
     * Gets initialization promise
     */
    protected getInitPromise(): Promise<void>;
}
//# sourceMappingURL=layoutComponentsChildren.iterator.d.ts.map