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