import { AuthorizationRequest, Context, CreateSecurityTokenWithTickerParams, CreateVenueParams, InviteAccountParams, ModifySignerPermissionsParams, RemoveSecondaryKeysParams, ReserveTickerParams, SecurityToken, TickerReservation, Venue } from "./internal";
import { NoArgsProcedureMethod, ProcedureMethod, Signer } from "./types";
/**
 * Handles functionality related to the Current Identity
 */
export declare class CurrentIdentity {
    private context;
    /**
     * @hidden
     */
    constructor(context: Context);
    /**
     * Remove a list of secondary keys associated with the Current Identity
     */
    removeSecondaryKeys: ProcedureMethod<RemoveSecondaryKeysParams, void>;
    /**
     * Revoke all permissions of a list of secondary keys associated with the Current Identity
     */
    revokePermissions: ProcedureMethod<{
        secondaryKeys: Signer[];
    }, void>;
    /**
     * Modify all permissions of a list of secondary keys associated with the Current Identity
     */
    modifyPermissions: ProcedureMethod<ModifySignerPermissionsParams, void>;
    /**
     * Send an invitation to an Account to join the Current Identity as a secondary key
     *
     * @note this will create an AuthorizationRequest which has to be accepted by
     *   the corresponding Account. An Account can
     *   fetch its pending Authorization Requests by calling `authorizations.getReceived`
     */
    inviteAccount: ProcedureMethod<InviteAccountParams, AuthorizationRequest>;
    /**
     * Create a Venue under the ownership of the Current Identity
     */
    createVenue: ProcedureMethod<CreateVenueParams, Venue>;
    /**
     * Freeze all the secondary keys in the Current Identity. This means revoking their permission to perform any operation on the blockchain and freezing their funds until the keys are unfrozen via [[unfreezeSecondaryKeys]]
     */
    freezeSecondaryKeys: NoArgsProcedureMethod<void>;
    /**
     * Unfreeze all the secondary keys in the Current Identity. This will restore their permissions as they were before being frozen
     */
    unfreezeSecondaryKeys: NoArgsProcedureMethod<void>;
    /**
     * Reserve a ticker symbol under the ownership of the Current Identity to later use in the creation of a Security Token.
     *   The ticker will expire after a set amount of time, after which other users can reserve it
     */
    reserveTicker: ProcedureMethod<ReserveTickerParams, TickerReservation>;
    /**
     * Create a Security Token
     *
     * @note if ticker is already reserved, then required role:
     *   - Ticker Owner
     */
    createToken: ProcedureMethod<CreateSecurityTokenWithTickerParams, SecurityToken>;
}
//# sourceMappingURL=CurrentIdentity.d.ts.map