import React from 'react';
import { StandardProps } from '../../util/component-types';
export interface ISlidePanelSlideProps extends StandardProps {
    description?: string;
}
declare class SlidePanelSlide extends React.Component<ISlidePanelSlideProps, {}, {}> {
    static displayName: string;
    static propName: string;
    render(): null;
}
export interface ISlidePanelProps extends StandardProps, React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement> {
    /** Max number of viewable slides to show simultaneously. */
    slidesToShow: number;
    /** The offset of the left-most rendered slide. */
    offset: number;
    /** Animate slides transitions from changes in `offset`. */
    isAnimated: boolean;
    /** Slides are rendered in a continuous loop, where the first slide repeats
     * after the last slide and vice-versa. DOM elements are re-ordered and
     * re-used. */
    isLooped: boolean;
    /** Called when a user's swipe would change the offset. Callback passes
     * number of slides by the user (positive for forward swipes, negative for
     * backwards swipes). */
    onSwipe: (slidesSwiped: number, { event, props }: {
        event: React.TouchEvent;
        props: ISlidePanelProps;
    }) => void;
}
interface ISlidePanelState {
    translateXPixel: number;
    startX: number;
    isDragging: boolean;
    isAnimated: boolean;
}
declare class SlidePanel extends React.Component<ISlidePanelProps, ISlidePanelState, {}> {
    static _isPrivate: boolean;
    static displayName: string;
    static peek: {
        description: string;
        categories: string[];
    };
    static propTypes: {
        className: any;
        children: any;
        Slide: any;
        slidesToShow: any;
        offset: any;
        isAnimated: any;
        isLooped: any;
        onSwipe: any;
    };
    private rootHTMLDivElement;
    private slideStrip;
    static Slide: typeof SlidePanelSlide;
    offsetTranslate: number;
    state: {
        translateXPixel: number;
        startX: number;
        isAnimated: boolean;
        isDragging: boolean;
    };
    static defaultProps: {
        slidesToShow: number;
        offset: number;
        isAnimated: boolean;
        onSwipe: (...args: any[]) => void;
        isLooped: boolean;
    };
    handleTouchStart: (event: React.TouchEvent) => void;
    handleTouchMove: (event: React.TouchEvent) => void;
    handleTouchEnd: (event: React.TouchEvent) => void;
    componentDidMount(): void;
    componentDidUpdate(prevProps: ISlidePanelProps, prevState: ISlidePanelState): void;
    render(): React.ReactNode;
}
export default SlidePanel;
