import { Encoded } from '../utils/encoder.js';
import { BaseError } from '../utils/errors.js';
/**
 * @category aepp wallet communication
 */
export declare const enum MESSAGE_DIRECTION {
    to_waellet = "to_waellet",
    to_aepp = "to_aepp"
}
/**
 * @category aepp wallet communication
 */
export declare const enum WALLET_TYPE {
    window = "window",
    extension = "extension"
}
/**
 * @category aepp wallet communication
 */
export declare const enum SUBSCRIPTION_TYPES {
    subscribe = "subscribe",
    unsubscribe = "unsubscribe"
}
/**
 * @category aepp wallet communication
 */
export declare const enum METHODS {
    readyToConnect = "connection.announcePresence",
    updateAddress = "address.update",
    address = "address.get",
    connect = "connection.open",
    unsafeSign = "data.unsafeSign",
    sign = "transaction.sign",
    signMessage = "message.sign",
    signTypedData = "typedData.sign",
    signDelegation = "delegation.sign",
    subscribeAddress = "address.subscribe",
    updateNetwork = "networkId.update",
    closeConnection = "connection.close"
}
/**
 * @category aepp wallet communication
 */
export declare const enum RPC_STATUS {
    CONNECTED = "CONNECTED",
    DISCONNECTED = "DISCONNECTED",
    WAITING_FOR_CONNECTION_REQUEST = "WAITING_FOR_CONNECTION_REQUEST"
}
interface RpcErrorAsJson {
    code: number;
    message: string;
    data?: any;
}
/**
 * @category exception
 */
export declare abstract class RpcError extends BaseError {
    static code: number;
    code: number;
    data?: any;
    toJSON(): RpcErrorAsJson;
    static deserialize(json: RpcErrorAsJson): RpcError;
}
/**
 * @category exception
 */
export declare class RpcInvalidTransactionError extends RpcError {
    static code: number;
    code: number;
    constructor(data?: any);
}
/**
 * @category exception
 */
export declare class RpcRejectedByUserError extends RpcError {
    static code: number;
    code: number;
    constructor(data?: any);
}
/**
 * @category exception
 */
export declare class RpcUnsupportedProtocolError extends RpcError {
    static code: number;
    code: number;
    constructor();
}
/**
 * @category exception
 */
export declare class RpcConnectionDenyError extends RpcError {
    static code: number;
    code: number;
    constructor(data?: any);
}
/**
 * @category exception
 */
export declare class RpcNotAuthorizeError extends RpcError {
    static code: number;
    code: number;
    constructor();
}
/**
 * @category exception
 */
export declare class RpcPermissionDenyError extends RpcError {
    static code: number;
    code: number;
    constructor(address: Encoded.AccountAddress);
}
/**
 * @category exception
 */
export declare class RpcInternalError extends RpcError {
    static code: number;
    code: number;
    constructor();
}
/**
 * @category exception
 */
export declare class RpcNoNetworkById extends RpcError {
    static code: number;
    code: number;
    constructor(networkId: string);
}
/**
 * @category exception
 */
export declare class RpcMethodNotFoundError extends RpcError {
    static code: number;
    code: number;
    constructor();
}
export {};
