import { TransferRestrictionBase } from "./TransferRestrictionBase";
import { AddPercentageTransferRestrictionParams, SetPercentageTransferRestrictionsParams } from "../../../../internal";
import { ActiveTransferRestrictions, NoArgsProcedureMethod, PercentageTransferRestriction, ProcedureMethod, TransferRestrictionType } from "../../../../types";
/**
 * Handles all Percentage Transfer Restriction related functionality
 */
export declare class Percentage extends TransferRestrictionBase<TransferRestrictionType.Percentage> {
    protected type: TransferRestrictionType.Percentage;
    /**
     * Add a Percentage Transfer Restriction to this Security Token
     *
     * @note the result is the total amount of restrictions after the procedure has run
     */
    addRestriction: ProcedureMethod<Omit<AddPercentageTransferRestrictionParams, 'type'>, number>;
    /**
     * Sets all Percentage Transfer Restrictions on this Security Token
     *
     * @note the result is the total amount of restrictions after the procedure has run
     */
    setRestrictions: ProcedureMethod<Omit<SetPercentageTransferRestrictionsParams, 'type'>, number>;
    /**
     * Removes all Percentage Transfer Restrictions from this Security Token
     *
     * @note the result is the total amount of restrictions after the procedure has run
     */
    removeRestrictions: NoArgsProcedureMethod<number>;
    /**
     * Retrieve all active Percentage Transfer Restrictions
     *
     * @note there is a maximum number of restrictions allowed accross all types.
     *   The `availableSlots` property of the result represents how many more restrictions can be added
     *   before reaching that limit
     */
    get: () => Promise<ActiveTransferRestrictions<PercentageTransferRestriction>>;
}
//# sourceMappingURL=Percentage.d.ts.map