import * as React from 'react';
import { JobStatusModel, JobStatusType } from '@lml/cosmo-ts-data';
import * as JobCard from '../../../jobs/components/card';
/**
 * Props that the client passes in
 */
export interface JobsListProps {
    jobStatus: JobStatusType;
}
/**
 * Props that the wrapper class passes in
 */
export interface WrappedJobsListProps extends JobsListProps {
    HeaderComponent: any;
    JobComponent: React.ComponentClass<JobCard.JobCardProps>;
}
/**
 * Props that are added by the connect call
 */
export interface JobsListComponentProps extends WrappedJobsListProps {
    jobs: JobStatusModel[];
    expandedJobs: any;
    allJobsExpanded: boolean;
    isSearched: any;
    firstJobIsActive: boolean;
    canPageBack: boolean;
    canPageForwards: boolean;
    resetPagination: () => any;
    pageForwards: () => any;
    pageBackwards: () => any;
    showNoJobsMessage: boolean;
}
export declare class BaseList extends React.Component<JobsListComponentProps> {
    private jobsList;
    constructor(props: JobsListComponentProps);
    componentWillUpdate(): void;
    render(): JSX.Element;
    renderJob({...params}: {
        [x: string]: any;
    }): JSX.Element;
    renderShowNoJobsMessage(): JSX.Element | null;
    setJobsListRef: (ref: any) => any;
    private jobRowHeight({...params});
    private spacerHeight();
}
export declare const ConnectedList: React.ComponentClass<WrappedJobsListProps>;
export declare abstract class AbstractList extends React.Component<JobsListProps, {}> {
}
export declare class LiveJobsList extends AbstractList {
    render(): JSX.Element;
}
export declare class AllocatedJobsList extends AbstractList {
    render(): JSX.Element;
}
export declare class AcceptedJobsList extends AbstractList {
    render(): JSX.Element;
}
export declare class InProgressJobsList extends AbstractList {
    render(): JSX.Element;
}
export declare class CompletedJobsList extends AbstractList {
    render(): JSX.Element;
}
