import { Gemstone } from '@gpa-gemstone/application-typings';
interface IProps<T> {
    /**
    * Attribute used to control what type of files are filtered by default in file explorer
    * */
    FileTypeAttribute: string;
    /**
    * Array of available pipelines to use
    * */
    Pipelines: Gemstone.TSX.Interfaces.IPipeline<T, any>[];
    /**
    * React Component to be used in the Review Step
    * */
    ReviewUI: (props: {
        Data: T[];
    }) => JSX.Element;
    /**
    * React Component to be used in the Complete Step
    * */
    CompleteUI?: JSX.Element;
    /**
    * Index of the steps array in the current pipline
    * */
    CurrentPipelineStep: number;
    /**
    * Setter to pass into the pipeline UI Components
    * */
    SetCurrentPipelineStep: (step: number) => void;
    /**
    * Step to represent current stage of component
    * */
    Step: Gemstone.TSX.Types.BulkUploadStep;
    /**
     * Callback function invoked when the Step prop is set to Complete.
     * @param {T[]} records - The processed records.
     */
    OnComplete: (records: T[]) => void;
    /**
     * Callback function to set validation errors during processing.
     * @param {string[]} errors - Array of error messages.
     */
    SetErrors: (errors: string[]) => void;
    /**
     * Optional Progress Bar component to replace internal Progress Bar.
     */
    ProgressBar?: JSX.Element;
    /**
     * Optional flag to call OnComplete handler when the review step is hit.
     */
    CompleteOnReview?: boolean;
}
export default function BulkUpload<T>(props: IProps<T>): JSX.Element;
export {};
