import * as React from 'react';
import { Component } from 'react';
import { PageConfig } from './entities';
export declare type Props = {
    /**
     * The page index to set as active page
     */
    index?: number;
    /**
     * Called when the page changes. If this is passed, the Stepper
     * becomes controlled and will expect the parent to maintain the state and update
     * the index property appropriately.
     */
    onChange?: (index: number) => void;
    pages: Array<PageConfig>;
    /**
     * Allow reversing more than one step at a time
     * @default true
     */
    allowJumpBack?: boolean;
    /**
     * Allow advancing more than one step at a time
     * @default false
     */
    allowJumpAhead?: boolean;
};
export declare type State = {
    currentPage?: number;
};
/**
 * The component where a stepper is configured and holds all state
 * and logic for navigating a stepper.
 *
 * It does not render any UI by itself and must be accompanied by
 * UI components like the DotTracker, Advance and Reverse Buttons or others.
 *
 * ### Usage
 * ```
 * <Stepper pages={[{component: PageOne}, {component: PageTwo}]}>
 *  <StepperView />
 *  <Row>
 *    <ReverseButton>Back</ReverseButton>
 *    <DotTracker />
 *    <AdvanceButton>Next</AdvanceButton>
 *  </Row>
 * </Stepper>
 * ```
 */
export declare class Stepper extends Component<Props, State> {
    static childContextTypes: {
        pages: import("prop-types").Requireable<any[]>;
        currentPage: import("prop-types").Requireable<number>;
        canAdvance: import("prop-types").Requireable<boolean>;
        canFinish: import("prop-types").Requireable<boolean>;
        canReverse: import("prop-types").Requireable<boolean>;
        setPageIndex: import("prop-types").Requireable<(...args: any[]) => any>;
    };
    readonly pageIndex: number;
    readonly canAdvance: boolean;
    readonly canFinish: boolean;
    readonly canReverse: boolean;
    allowNavigate: (fn: any, toIndex: number) => Promise<boolean>;
    setPageIndex: (index: number) => Promise<boolean>;
    constructor(props: Props);
    getChildContext(): {
        pages: PageConfig[];
        currentPage: number;
        canAdvance: boolean;
        canFinish: boolean;
        canReverse: boolean;
        setPageIndex: (index: number) => Promise<boolean>;
    };
    componentWillReceiveProps(nextProps: any): void;
    render(): React.ReactElement<any>;
    private _setIndex;
}
