/*!
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 { PagingQuery, PagingList, UserWithPubKey, Inbox, InboxPublicView, InboxEntry, FilesConfig, ContainerWithoutItemPolicy, InboxEventType, InboxEventSelectorType } from "../Types";
import { BaseNative } from "./BaseNative";
export declare class InboxApiNative extends BaseNative {
    newApi(connectionPtr: number, threadApiPtr: number, storeApiPtr: number): Promise<number>;
    deleteApi(ptr: number): Promise<void>;
    create(ptr: number, args: []): Promise<void>;
    createInbox(ptr: number, args: [
        string,
        UserWithPubKey[],
        UserWithPubKey[],
        Uint8Array,
        Uint8Array,
        FilesConfig | undefined,
        ContainerWithoutItemPolicy | undefined
    ]): Promise<string>;
    updateInbox(ptr: number, args: [
        string,
        UserWithPubKey[],
        UserWithPubKey[],
        Uint8Array,
        Uint8Array,
        FilesConfig | undefined,
        number,
        boolean,
        boolean,
        ContainerWithoutItemPolicy | undefined
    ]): Promise<void>;
    getInbox(ptr: number, args: [string]): Promise<Inbox>;
    listInboxes(ptr: number, args: [string, PagingQuery]): Promise<PagingList<Inbox>>;
    getInboxPublicView(ptr: number, args: [string]): Promise<InboxPublicView>;
    deleteInbox(ptr: number, args: [string]): Promise<void>;
    prepareEntry(ptr: number, args: [string, Uint8Array, number[], string | undefined]): Promise<number>;
    sendEntry(ptr: number, args: [number]): Promise<void>;
    readEntry(ptr: number, args: [string]): Promise<InboxEntry>;
    deleteEntry(ptr: number, args: [string]): Promise<void>;
    listEntries(ptr: number, args: [string, PagingQuery]): Promise<PagingList<InboxEntry>>;
    createFileHandle(ptr: number, args: [Uint8Array, Uint8Array, number]): Promise<number>;
    writeToFile(ptr: number, args: [number, number, Uint8Array]): Promise<void>;
    openFile(ptr: number, args: [string]): Promise<number>;
    readFromFile(ptr: number, args: [number, number]): Promise<Uint8Array>;
    seekInFile(ptr: number, args: [number, number]): Promise<void>;
    closeFile(ptr: number, args: [number]): Promise<string>;
    subscribeFor(ptr: number, args: [string[]]): Promise<string[]>;
    unsubscribeFrom(ptr: number, args: [string[]]): Promise<void>;
    buildSubscriptionQuery(ptr: number, args: [InboxEventType, InboxEventSelectorType, string]): Promise<string>;
}
