import * as React from 'react';
import { FormData, StatusEnum } from '../../utils/synapseTypes/';
/**
 * TODO: SWC-5612 - Replace token prop with SynapseContext.accessToken
 *
 * This wasn't done because Enzyme's shallow renderer is not currently
 * compatible with the `contextType` field in the React 16+ context API.
 *
 * This can be fixed by rewriting tests to not rely on the shallow renderer.
 *
 * See here: https://github.com/enzymejs/enzyme/issues/1553
 */
export declare type SynapseFormSubmissionGridProps = {
    token?: string;
    formGroupId: string;
    pathpart: string;
    formClass?: string;
    itemNoun: string;
};
declare type FileListType = 'IN_PROGRESS' | 'SUBMITTED';
declare type SynapseFormSubmissionGridState = {
    inProgress: {
        fileList: FormData[];
        nextPageToken?: string;
    };
    submitted: {
        fileList: FormData[];
        nextPageToken?: string;
    };
    isLoading: boolean;
    isShowInfoModal: boolean;
    modalContext?: {
        action: Function;
        arguments: any[];
    };
};
export default class SynapseFormSubmissionGrid extends React.Component<SynapseFormSubmissionGridProps, SynapseFormSubmissionGridState> {
    modalTitle: string;
    listingText: {
        inProgress: {
            subhead: string;
            noRecords: string;
        };
        submitted: {
            subhead: string;
            noRecords: string;
        };
    };
    modalCopy: JSX.Element;
    static requestFilter: {
        IN_PROGRESS: StatusEnum[];
        SUBMITTED: StatusEnum[];
    };
    constructor(props: SynapseFormSubmissionGridProps);
    componentDidMount(): Promise<void>;
    componentDidUpdate(prevProps: SynapseFormSubmissionGridProps): Promise<void>;
    refresh(token?: string): Promise<void>;
    getTypeFileListing: (filter: StatusEnum[], nextPageToken?: string | undefined) => Promise<{
        fileList: FormData[];
        nextPageToken?: string | undefined;
    }>;
    getMore: (fileListType: FileListType, nextPageToken: string) => Promise<void>;
    getUserFileListing: () => Promise<void>;
    onError: (args: any) => void;
    deleteFile: (token: string, formDataId: string) => Promise<any>;
    setModalConfirmationState: (token: string, formDataId: string) => void;
    renderLoading: (token: string | undefined, isLoading: boolean) => JSX.Element;
    renderUnauthenticatedView: (token: string | undefined) => JSX.Element;
    renderSubmissionsTable: (fileList: FormData[], pathpart: string, formGroupId: string, fileListType: FileListType, nextPageToken?: string | undefined) => JSX.Element;
    renderSubmissionsTables: (inProgress: {
        fileList: FormData[];
        nextPageToken?: string;
    }, submitted: {
        fileList: FormData[];
        nextPageToken?: string;
    }, pathpart: string, formGroupId: string) => JSX.Element[] | JSX.Element;
    render(): JSX.Element;
}
export {};
