/**
 * Download content interface for lesson materials
 */
export interface DownloadContent {
    /** Initial frame image URL */
    urlInitialFrame?: string;
    /** Final frame image URL */
    urlFinalFrame?: string;
    /** Podcast audio URL */
    urlPodcast?: string;
    /** Video URL */
    urlVideo?: string;
}
/**
 * Props for DownloadButton component
 */
export interface DownloadButtonProps {
    /** Content URLs to download */
    content: DownloadContent;
    /** Additional CSS classes */
    className?: string;
    /** Callback fired when download starts */
    onDownloadStart?: (contentType: string) => void;
    /** Callback fired when download completes */
    onDownloadComplete?: (contentType: string) => void;
    /** Callback fired when download fails */
    onDownloadError?: (contentType: string, error: Error) => void;
    /** Lesson title for download file naming */
    lessonTitle?: string;
    /** Whether the button is disabled */
    disabled?: boolean;
}
/**
 * DownloadButton component for downloading lesson content
 *
 * Downloads every asset of a lesson (video, podcast and board frames), matching
 * the mobile app's "baixar aula completa". Where the browser supports it, the
 * user picks a folder and each file is streamed straight to disk with real
 * progress; elsewhere the browser downloads them one by one.
 *
 * @param props - DownloadButton component props
 * @returns Download button element
 */
declare const DownloadButton: ({ content, className, onDownloadStart, onDownloadComplete, onDownloadError, lessonTitle, disabled, }: DownloadButtonProps) => import("react/jsx-runtime").JSX.Element | null;
export default DownloadButton;
//# sourceMappingURL=DownloadButton.d.ts.map