import Panel, { PanelOptions } from "./Panel";
import VirtualElementProvider from "./provider/VirtualElementProvider";
/**
 * Options for creating a {@link VirtualPanel}
 */
export interface VirtualPanelOptions extends PanelOptions {
    /** A provider instance that returns the actual html element */
    elementProvider: VirtualElementProvider;
}
/**
 * A slide data component that holds information of a single HTMLElement
 */
declare class VirtualPanel extends Panel {
    protected _elProvider: VirtualElementProvider;
    protected _cachedInnerHTML: string | null;
    /**
     * `HTMLElement` that panel's referencing
     * @readonly
     */
    get element(): HTMLElement;
    /**
     * Cached innerHTML by the previous render function
     * @readonly
     */
    get cachedInnerHTML(): string | null;
    /**
     * A number for indexing which element it will be rendered on
     * @readonly
     */
    get elementIndex(): number;
    /**
     * @param options - {@link VirtualPanelOptions}
     */
    constructor(options: VirtualPanelOptions);
    cacheRenderResult(result: string): void;
    uncacheRenderResult(): void;
    render(): void;
    increaseIndex(val: number): this;
    decreaseIndex(val: number): this;
}
export default VirtualPanel;
