import type { ExistingLegalEntity } from '../../core/models/api/legal-entity';
import type { LegalEntityAssociation } from '../../core/models/api/legal-entity-association';
import type { TransferInstrumentOverview } from '../../core/models/api/transfer-instrument';
import type { AccountHolderOption } from '../../types/accountHolder';
import type { CapabilityProblems } from '../../types/errors/capability-problems';
import type { TrustMember } from '../../components/Trust/tasks/TrustMembers/types';
import type { TaskIdentifier } from './globalStore';
import type { TaskStatusWithReason } from './taskStatus';
import { type TaskType } from './taskTypes';
export declare const calculateTaskStatus: ({ taskIdentifier, capabilityProblems, rootLegalEntity, accountHolder, legalRepresentative, trustMembers, transferInstruments, }: {
    taskIdentifier: TaskIdentifier;
    capabilityProblems: CapabilityProblems;
    rootLegalEntity: ExistingLegalEntity;
    accountHolder: AccountHolderOption | undefined;
    legalRepresentative: LegalEntityAssociation | undefined;
    trustMembers: TrustMember[];
    transferInstruments: TransferInstrumentOverview[];
}) => TaskStatusWithReason;
/**
 * Splits a {@link TaskIdentifier} (e.g. `PAYOUT_ACCOUNT-abc-123`) into the task type and id
 */
export declare const splitTaskIdentifier: (taskIdentifier: TaskIdentifier) => {
    taskType: TaskType;
    id?: string;
};
