import type { ApiTaskStatus, TaskStatusEntry } from '../../api/taskStatus/taskStatus.types';
import type { TaskType } from '../globalStore/taskTypes';
export type TaskStatus = (typeof TaskStatuses)[keyof typeof TaskStatuses];
/**
 * Order of TaskStatus enums are used to define the priority of the statuses
 * while processing the capabilities.
 */
export declare const TaskStatuses: {
    readonly EMPTY: 0;
    readonly FINISHED: 1;
    readonly PROCESSING: 2;
    readonly DETAILS_REQUIRED: 3;
    readonly SIGN: 4;
    readonly DOWNLOAD: 5;
    readonly SUBMIT: 6;
    readonly ERROR: 7;
    readonly SIGNED: 8;
    readonly REMOVING: 9;
    readonly UNKNOWN: 10;
};
type Reason = 'rootLegalEntityIsEmpty' | 'newEntityAlwaysEmpty' | 'legalRepresentativeNeeded' | 'bankAccountNeeded' | 'missingRequiredDecisionMakers' | 'missingRequiredTrustMembers' | 'invalidInputError' | 'dataMissingError' | 'dataReviewNeeded' | 'pendingStatusError' | 'pendingCapabilities' | 'invalidCapabilities' | 'allCapabilitiesValid' | 'noIssuesFound';
export interface TaskStatusWithReason {
    status: TaskStatus;
    reason: Reason;
    details?: any;
}
export interface TaskStatusWithType {
    status: ApiTaskStatus;
    type: TaskType;
    taskStatusEntries?: TaskStatusEntry[];
}
export interface TaskStatusApiResponse {
    statuses: TaskStatusWithType[];
}
export type NormalizedTaskStatus = {
    [key in TaskType]?: {
        status: TaskStatus;
        taskStatusEntries?: TaskStatusEntry[];
    };
};
export declare const TASK_STATUS_POLLING_INTERVAL_MS = 3000;
export declare const TASK_STATUS_COMPLETED_POLLING_INTERVAL_MS = 6000;
export {};
