import { AccountRelationContext } from './model_account_relation_context';
import { WsMessage } from '../../../model/common';
import { WebSocketMessageCallback } from '../../../internal/interfaces/websocket';
import { Response } from '../../../internal/interfaces/serializable';
export declare class AccountEvent implements Response<WsMessage> {
    /**
     * Account ID
     */
    accountId: string;
    /**
     * Funds available to withdraw or trade
     */
    available: string;
    /**
     * The change of available Funds
     */
    availableChange: string;
    /**
     * currency
     */
    currency: string;
    /**
     * Funds on hold (not available for use)
     */
    hold: string;
    /**
     * The change of hold funds
     */
    holdChange: string;
    /**
     *
     */
    relationContext: AccountRelationContext;
    /**
     * Relation event
     */
    relationEvent: string;
    /**
     * Relation event Id
     */
    relationEventId: string;
    /**
     *
     */
    time: string;
    /**
     * Total balance = available + hold
     */
    total: string;
    private constructor();
    /**
     * common response
     */
    commonResponse?: WsMessage;
    setCommonResponse(response: WsMessage): void;
    /**
     * Convert the object to a JSON string.
     */
    toJson(): string;
    /**
     * Create an object from a JSON string.
     */
    static fromJson(input: string): AccountEvent;
    /**
     * Create an object from Js Object.
     */
    static fromObject(jsonObject: Object): AccountEvent;
}
export type AccountEventCallback = (topic: string, subject: string, data: AccountEvent) => void;
export declare class AccountEventCallbackWrapper implements WebSocketMessageCallback {
    private callback;
    constructor(callback: AccountEventCallback);
    onMessage(msg: WsMessage): void;
}
