import { EventEmitter } from './utils/event-emitter'; import type { Debounce } from './types'; import type { Widget } from './widget'; /** * Container element */ export interface ContainerElement extends HTMLElement { rcWidget?: Widget; } /** * Options for waiting when the container enters the viewport */ export interface EnterViewportOptions { /** Enable lazy loading, default is false */ lazy?: boolean; /** Offset for lazy loading, default is 300 */ offset?: number; } /** * Container for widgets */ export declare class Container extends EventEmitter { private element; private reduceViewportChange?; private ready?; private viewportManager?; private destroyed; /** * Container constructor * * @param element Container's DOM element * @param reduceViewportChange Function to throttle viewport change events */ constructor(element: ContainerElement, reduceViewportChange?: Debounce); getElement(): ContainerElement; /** * Append content element */ appendChild(element: HTMLElement): void; /** * Manually destroy the container */ destroy: () => void; updateViewport(): void; private subscribeScroll; private onScroll; /** * Returns a Promise that resolves when the container enters the viewport from the top */ whenEnterViewportFromTop(options: EnterViewportOptions): Promise; }