import { DataAsset, DataAssetManager } from '../../../../../core/modules/data-assets';
import { SharedPlanShare } from '../../domain/models/shared-plan-share';
import { SharedPlanErrorReporter } from '../../domain/services/shared-plan-error-reporter';
import { CustodianSharePair, SharedPlanSharesGenerator } from '../../domain/services/shared-plan-shares-generator';
export interface GenerateSharesInput {
    assets: DataAsset[];
    threshold: number;
    total: number;
    withCustodian?: boolean;
}
export interface GenerateSharesResult {
    shares: SharedPlanShare[];
    custodianPair?: CustodianSharePair;
}
export declare class GenerateSharesUseCase {
    private readonly assetManager;
    private readonly generator;
    private readonly errorReporter;
    constructor(assetManager: DataAssetManager, generator: SharedPlanSharesGenerator, errorReporter: SharedPlanErrorReporter);
    execute(input: GenerateSharesInput): Promise<GenerateSharesResult>;
    private runStep;
    private validateInput;
    private reportError;
}
