import React from 'react';
import '../../../web/scss/components/ProgressStepper/_index.scss';
export type Status = 'blank' | 'info' | 'minor' | 'current' | 'pending' | 'in-progress' | 'success' | 'warning' | 'error' | 'unknown';
/** Children is the description */
type ProgressStepProps = React.PropsWithChildren<{
    className?: string;
    title: React.ReactNode;
    customIcon?: React.ReactNode;
    defaultStatus: Status | Promise<Status>;
    liveStatusChannel?: string;
}>;
export interface ProgressStepState {
    status: Status;
}
export declare function statusFromStatusVector(statusVector: number[], isMinor: boolean): "error" | "success" | "in-progress" | "blank" | "minor";
export declare function statusToClassName(status: Status): string[];
export declare function statusToIcon(status: Status): JSX.Element;
export declare class ProgressStep extends React.PureComponent<ProgressStepProps, ProgressStepState> {
    constructor(props: ProgressStepProps);
    private get status();
    private icon;
    private readonly _statusUpdateHandler;
    /** Once we have mounted, subscribe to link status update events */
    componentDidMount(): void;
    /** Bye! */
    componentWillUnmount(): void;
    render(): JSX.Element;
}
export interface ProgressStepperProps {
    className?: string;
    layout?: 'vertical' | 'horizontal' | 'compact';
    children: React.ReactElement<ProgressStep> | React.ReactElement<ProgressStep>[];
}
export declare class ProgressStepper extends React.PureComponent<ProgressStepperProps> {
    render(): JSX.Element;
}
interface LinkStatusProps {
    children: any[];
}
export type ProgressStepCompatible<TitleProps = any> = {
    className?: string;
    children: any[];
};
export declare function isProgressStepCompatible(props: any): boolean;
export declare function liveStatusChannel(props: ProgressStepCompatible<LinkStatusProps>): string;
export {};
