import React from 'react';
import { BaseComponentProps } from '../internal/base-component';
import { NonCancelableEventHandler } from '../internal/events';
export interface TutorialPanelProps extends BaseComponentProps {
    loading?: boolean;
    tutorials: ReadonlyArray<TutorialPanelProps.Tutorial>;
    downloadUrl: string;
    i18nStrings: TutorialPanelProps.I18nStrings;
    onFeedbackClick: NonCancelableEventHandler<TutorialPanelProps.TutorialDetail>;
}
export declare namespace TutorialPanelProps {
    interface TutorialDetail {
        tutorial: Tutorial;
    }
    interface Tutorial {
        title: string;
        description: React.ReactNode;
        tasks: ReadonlyArray<Task>;
        completedScreenDescription: React.ReactNode;
        prerequisitesAlert?: React.ReactNode;
        prerequisitesNeeded?: boolean;
        learnMoreUrl?: string | null;
        completed: boolean;
    }
    interface Task {
        title: string;
        steps: ReadonlyArray<Step>;
    }
    interface Step {
        title: string;
        content: React.ReactNode;
        warningAlert?: React.ReactNode;
        hotspotId: string;
    }
    interface I18nStrings {
        loadingText: string;
        tutorialListTitle: string;
        tutorialListDescription: React.ReactNode;
        tutorialListDownloadLinkText: string;
        tutorialCompletedText: string;
        learnMoreLinkText: string;
        startTutorialButtonText: string;
        restartTutorialButtonText: string;
        completionScreenTitle: string;
        feedbackLinkText: string;
        dismissTutorialButtonText: string;
        taskTitle: (taskIndex: number, taskTitle: string) => string;
        stepTitle: (stepIndex: number, stepTitle: string) => string;
        labelExitTutorial: string;
        labelTotalSteps: (totalStepCount: number) => string;
        labelsTaskStatus: {
            pending: string;
            'in-progress': string;
            success: string;
        };
    }
}
