/// <reference types="react" />
import './cell.css';
import { React } from '.';
import { ViewController } from './ctr';
import Gesture, { Event as GEvent } from './gesture';
import { EventNoticer, Event } from 'somes/event';
export declare class CellPanel<P = {}> extends Gesture<P & {
    index?: number;
    bounce?: boolean;
    preloading?: number;
    transitionDuration?: number;
    className?: string;
}> {
    private _count;
    private __index;
    private _bounce;
    private __preloading;
    private _cells;
    private get _index();
    private _reallyIndex;
    private setIndex;
    private get _maxIndex();
    private get _minIndex();
    private get _max();
    private get _min();
    private _cellsDom;
    private _preloading;
    private _displayRange;
    private _renderChild;
    readonly onSwitch: EventNoticer<Event<number, CellPanel<P>>>;
    get transitionDuration(): number;
    get count(): number;
    get index(): number;
    get reallyIndex(): number;
    set index(val: number);
    cellAt(index: number): Cell<{}, {}> | null;
    switchAt(index: number, animate?: boolean): void;
    get current(): Cell<{}, {}>;
    render(): JSX.Element;
    protected get $el(): HTMLElement;
    private _beginX;
    protected triggerMove(e: GEvent): void;
    protected triggerEndMove(e: GEvent): void;
}
export declare class Cell<P = {}, S = {}> extends ViewController<P & {
    style?: React.CSSProperties;
    className?: string;
}, S> {
    private _panel;
    private _isPause;
    readonly onResume: EventNoticer<Event<void, Cell<P, {}>>>;
    readonly onPause: EventNoticer<Event<void, Cell<P, {}>>>;
    constructor(props: any);
    get index(): number;
    get panel(): CellPanel<{}>;
    get isPause(): boolean;
    triggerResume(): void;
    triggerPause(): void;
    private _resume;
    private _pause;
    triggerMounted(): void;
    triggerRemove(): void;
    render(): JSX.Element;
    renderBody(): React.ReactNode;
}
