import React from 'react';
import { ButtonProps } from '../Button/Button.models';
import { CheckboxProps as CheckboxType, TooltipProps } from '../ComponentTypes.models';
type VideoFileUrlProps = {
    /** The `videoUrl` is needed when the file type is a video. Without this prop, the `MediaViewer` will render the preview as an image by default. */
    videoUrl?: string;
    audioUrl?: never;
};
type AudioFileUrlProps = {
    /** The `audioUrl` is needed when the file type is a audio.Without this prop, the `MediaViewer` will render the preview as an image by default. */
    audioUrl?: string;
    videoUrl?: never;
};
type PlayableFileUrlProps = VideoFileUrlProps | AudioFileUrlProps;
export type MediaViewerFileProps = {
    /** Unique name for the file */
    name: string;
    /** Determines the checked state for the file */
    isChecked: boolean;
    /** Optional prop that holds an array of file-related information to be displayed in the file information section of the `MediaViewer`. */
    fileData?: {
        /** The label for the file-related information. */
        label: string;
        /** The value corresponding to the label. */
        value: string;
    }[];
    /** Optional prop that represents the thumbnail image URL of the file, enabling visual identification or content preview. */
    url?: string;
    /** Optional prop that represents the URL for a playable file (audio / video). */
    playableFileUrl?: PlayableFileUrlProps;
};
type CheckboxProps = {
    /** Props for the checkbox in the file information section of the `MediaViewer`. */
    infoCheckboxProps: CheckboxType<string>;
    /** Props for the tooltip in the file information section of the `MediaViewer`. */
    checkboxTooltip: TooltipProps;
};
export type MediaViewerProps = {
    /** Props for the checkbox and tooltip in the file information section of the `MediaViewer`. */
    checkboxProps: CheckboxProps;
    /** The content to be rendered within the footer of `MediaViewer`. */
    footerButtons?: React.ReactNode;
    /** The currently active file inside `MediaViewer` `SideDrawer`. */
    activeFile: MediaViewerFileProps;
    /** Function that will make a callout to set `activefile` */
    activeFileCallout: (activeFile: MediaViewerFileProps) => void;
    /** The file that is displayed when the `MediaViewer` is opened */
    file: MediaViewerFileProps;
    /** Array of files displayed inside the `MediaViewer` */
    files: MediaViewerFileProps[];
    /** Prop for handling the button in the file information section of the `MediaViewer`. */
    fileDetailsButtonProps?: ButtonProps;
    /** Optionally add custom JSX. This will be rendered in place of the information section. */
    customInformationSection?: React.ReactNode;
};
export {};
