import { ConfigService } from "@nestjs/config"; import { Model } from "mongoose"; import { AssetParameters } from "../../common/models/AssetsConfig"; import { LogService } from "../../common/services/LogService"; import { QueryService } from "../../common/services/QueryService"; import { StateService } from "../../common/services/StateService"; import { PayoutCommand, PayoutCommandOptions } from "./PayoutCommand"; import { Subjectable } from "../concerns/Subjectable"; import { PayoutPreparationStateData } from "../models/PayoutPreparationStateData"; import { PayoutsService } from "../services/PayoutsService"; import { SignerService } from "../services/SignerService"; export declare type PreparePayoutsCommandOptions = PayoutCommandOptions; export declare abstract class PreparePayouts = Model> extends PayoutCommand { protected readonly configService: ConfigService; protected readonly stateService: StateService; protected readonly queryService: QueryService; protected readonly payoutsService: PayoutsService; protected readonly signerService: SignerService; protected readonly logService: LogService; protected totalNumberPrepared: number; protected baseAsset: AssetParameters; protected earnAsset: AssetParameters; protected dappIdentifier: string; constructor(configService: ConfigService, stateService: StateService, queryService: QueryService, payoutsService: PayoutsService, signerService: SignerService, logService: LogService); protected getStateData(): PayoutPreparationStateData; protected abstract get collection(): string; protected abstract get shouldSetSubjectPayoutState(): boolean; protected abstract fetchSubjects(): Promise; protected abstract updatePayoutSubject(subject: TDocument, updateData: Record): Promise; protected abstract getAssetIdentifier(): string; protected abstract getAssetAmount(subject: TDocument, multiplier: number): number; protected abstract getMultiplier(subjectAddress: string): Promise; execute(options?: PreparePayoutsCommandOptions): Promise; }