import { ISubmittableResult } from '@polkadot/types/types';
import BigNumber from 'bignumber.js';
import { Context, DefaultPortfolio, DividendDistribution, InitiateCorporateActionParams, NumberedPortfolio, PostTransactionValue, Procedure } from "../../internal";
import { InputCaCheckpoint } from "../../types";
import { ProcedureAuthorization } from "../../types/internal";
/**
 * @hidden
 */
export declare const createDividendDistributionResolver: (context: Context) => (receipt: ISubmittableResult) => Promise<DividendDistribution>;
export declare type ConfigureDividendDistributionParams = Omit<InitiateCorporateActionParams, 'kind' | 'checkpoint'> & {
    /**
     * checkpoint to be used to calculate Dividends. If a Schedule is passed, the next Checkpoint it creates will be used.
     *   If a Date is passed, a Checkpoint will be created at that date and used
     */
    checkpoint: InputCaCheckpoint;
    /**
     * portfolio from which the Dividends will be distributed. Optional, defaults to the Corporate Actions Agent's Default Portfolio
     */
    originPortfolio?: NumberedPortfolio | BigNumber;
    /**
     * ticker of the currency in which Dividends will be distributed
     */
    currency: string;
    /**
     * amount of `currency` to distribute per each share of the Security Token that a target holds
     */
    perShare: BigNumber;
    /**
     * maximum amount of `currency` to distribute in total
     */
    maxAmount: BigNumber;
    /**
     * date from which Tokenholders can claim their Dividends
     */
    paymentDate: Date;
    /**
     * Optional, defaults to never expiring
     */
    expiryDate?: Date;
};
/**
 * @hidden
 */
export declare type Params = ConfigureDividendDistributionParams & {
    ticker: string;
};
/**
 * @hidden
 */
export interface Storage {
    portfolio: DefaultPortfolio | NumberedPortfolio;
}
/**
 * @hidden
 */
export declare function prepareConfigureDividendDistribution(this: Procedure<Params, DividendDistribution, Storage>, args: Params): Promise<PostTransactionValue<DividendDistribution>>;
/**
 * @hidden
 */
export declare function getAuthorization(this: Procedure<Params, DividendDistribution, Storage>, { ticker }: Params): ProcedureAuthorization;
/**
 * @hidden
 */
export declare function prepareStorage(this: Procedure<Params, DividendDistribution, Storage>, { originPortfolio }: Params): Promise<Storage>;
/**
 * @hidden
 */
export declare const configureDividendDistribution: () => Procedure<Params, DividendDistribution, Storage>;
//# sourceMappingURL=configureDividendDistribution.d.ts.map