import React from 'react';
import { IVirtualListItemMethods, VirtualListItemRenderer } from '../models';
import { IRenderVirtualListItem } from '../models/render-item.model';
import { ISize } from '../types';
export interface IVirtualListItemProps {
    regular?: boolean;
    renderer?: VirtualListItemRenderer;
}
interface IVirtualListItemState {
    data: IRenderVirtualListItem | undefined;
}
export declare const getNextId: () => number;
/**
 * Virtual list item component
 * @link https://github.com/DjonnyX/rcx-virtual-list/tree/main/src/lib/src/components/ng-virtual-list-item.component.ts
 * @author Evgenii Grebennikov
 * @email djonnyx@gmail.com
 */
export declare class VirtualListItem extends React.Component<IVirtualListItemProps, IVirtualListItemState> implements IVirtualListItemMethods {
    private _$elementRef;
    private _$listItemRef;
    private static __nextId;
    private _id;
    get id(): number;
    protected _regular: boolean;
    get regular(): boolean;
    private _data;
    get data(): IRenderVirtualListItem | undefined;
    set data(v: IRenderVirtualListItem | undefined);
    protected _regularLength: string;
    set regularLength(v: string);
    get regularLength(): string;
    get item(): IRenderVirtualListItem | undefined;
    get itemId(): import("../types").Id | undefined;
    get element(): HTMLDivElement | null;
    protected _renderer: VirtualListItemRenderer;
    get renderer(): VirtualListItemRenderer;
    set renderer(v: VirtualListItemRenderer);
    constructor(props: IVirtualListItemProps);
    protected update(): void;
    getSnapshotBeforeUpdate(prevProps: Readonly<IVirtualListItemProps>, prevState: Readonly<IVirtualListItemState>): null;
    componentDidUpdate(prevProps: Readonly<IVirtualListItemProps>, prevState: Readonly<IVirtualListItemState>, snapshot?: any): void;
    shouldComponentUpdate(nextProps: Readonly<IVirtualListItemProps>, nextState: Readonly<IVirtualListItemState>): boolean;
    getBounds(): ISize;
    show(): void;
    hide(): void;
    private classNames;
    render(): React.ReactNode;
}
export {};
