/*!
PrivMX Web Endpoint.
Copyright © 2024 Simplito sp. z o.o.

This file is part of the PrivMX Platform (https://privmx.dev).
This software is Licensed under the PrivMX Free License.

See the License for the specific language governing permissions and
limitations under the License.
*/
import { BaseApi } from "./BaseApi";
import { EventApiNative } from "../api/EventApiNative";
import { UserWithPubKey } from "../Types";
export declare class EventApi extends BaseApi {
    private native;
    constructor(native: EventApiNative, ptr: number);
    /**
     * Emits the custom event on the given Context and channel.
     *
     * @param {string} contextId ID of the Context
     * @param {string} channelName name of the Channel
     * @param {Uint8Array} eventData event's data
     * @param {UserWithPubKey[]} users list of UserWithPubKey objects which defines the recipients of the event
     */
    emitEvent(contextId: string, channelName: string, eventData: Uint8Array, users: UserWithPubKey[]): Promise<void>;
    /**
     * Subscribe for the custom events on the given channel.
     *
     * @param {string} contextId ID of the Context
     * @param {string} channelName name of the Channel
     */
    subscribeForCustomEvents(contextId: string, channelName: string): Promise<void>;
    /**
     * Unsubscribe from the custom events on the given channel.
     *
     * @param {string} contextId ID of the Context
     * @param {string} channelName name of the Channel
     */
    unsubscribeFromCustomEvents(contextId: string, channelName: string): Promise<void>;
}
