import { ISubmittableResult } from '@polkadot/types/types';
import BigNumber from 'bignumber.js';
import { CAId } from "../../polkadot/types";
import { Checkpoint, CheckpointSchedule, PostTransactionValue, Procedure } from "../../internal";
import { CorporateActionKind, CorporateActionTargets, Identity, TaxWithholding } from "../../types";
import { ProcedureAuthorization } from "../../types/internal";
/**
 * @hidden
 */
export declare const createCaIdResolver: () => (receipt: ISubmittableResult) => CAId;
/**
 * @hidden
 */
export interface InitiateCorporateActionParams {
    kind: CorporateActionKind;
    /**
     * date at which the issuer publicly declared the Corporate Action. Optional, defaults to the current date
     */
    declarationDate?: Date;
    /**
     * checkpoint to be used for share-related calculations. If a Schedule is passed, the next Checkpoint it creates will be used
     */
    checkpoint?: Checkpoint | CheckpointSchedule | Date;
    description: string;
    /**
     * tokenholder identities to be included (or excluded) from the Corporate Action. Inclusion/exclusion is controlled by the `treatment`
     *   property. When the value is `Include`, all tokenholders not present in the array are excluded, and vice-versa
     */
    targets?: Omit<CorporateActionTargets, 'identities'> & {
        identities: (string | Identity)[];
    };
    /**
     * default percentage of the Benefits to be held for tax purposes
     */
    defaultTaxWithholding?: BigNumber;
    /**
     * percentage of the Benefits to be held for tax purposes from individual tokenholder Identities.
     *   This overrides the value of `defaultTaxWithholding`
     */
    taxWithholdings?: (Omit<TaxWithholding, 'identity'> & {
        identity: string | Identity;
    })[];
}
export declare type Params = InitiateCorporateActionParams & {
    ticker: string;
};
/**
 * @hidden
 */
export declare function prepareInitiateCorporateAction(this: Procedure<Params, CAId>, args: Params): Promise<PostTransactionValue<CAId>>;
/**
 * @hidden
 */
export declare function getAuthorization(this: Procedure<Params, CAId>, { ticker }: Params): ProcedureAuthorization;
/**
 * @hidden
 */
export declare const initiateCorporateAction: () => Procedure<Params, CAId>;
//# sourceMappingURL=initiateCorporateAction.d.ts.map