import { IDevice, ISettings, ILegacyDevice, IInitialSettings, ICancel, IMessage } from '../../proto';
import { VpsVersion } from '../../typings';
export declare type BatchableMethods = {
    sendText: (data: string, params?: {
        messageId?: number;
        last?: 1 | -1;
        messageName?: string;
        vpsToken?: string;
        userId?: string;
        token?: string;
        userChannel?: string;
        version?: VpsVersion;
        meta?: {
            [k: string]: string;
        };
    }, type?: string, messageId?: number) => void;
    sendSystemMessage: (data: {
        data: Record<string, unknown>;
        messageName?: string;
    }, last: boolean, params?: {
        meta?: {
            [k: string]: string;
        };
    }) => void;
    sendVoice: (data: Uint8Array, last: boolean, messageName?: string, params?: {
        meta?: {
            [k: string]: string;
        };
    }) => void;
    sendSettings: (data: ISettings, last?: boolean, messageId?: number) => void;
    messageId: number;
};
export declare const createClientMethods: ({ getMessageId, sendMessage, }: {
    getMessageId: () => number;
    sendMessage: (message: IMessage) => void;
}) => {
    sendDevice: (data: IDevice, last?: boolean, messageId?: number) => void;
    sendInitialSettings: (data: IInitialSettings, last?: boolean, messageId?: number, params?: {
        meta?: {
            [k: string]: string;
        } | undefined;
    }) => void;
    sendCancel: (data: ICancel, last?: boolean, messageId?: number) => void;
    sendLegacyDevice: (data: ILegacyDevice, last?: boolean, messageId?: number) => void;
    sendSettings: (data: ISettings, last?: boolean, messageId?: number) => void;
    sendText: (data: string, params?: {
        messageId?: number | undefined;
        last?: 1 | -1 | undefined;
        messageName?: string | undefined;
        vpsToken?: string | undefined;
        userId?: string | undefined;
        token?: string | undefined;
        userChannel?: string | undefined;
        version?: VpsVersion | undefined;
        meta?: {
            [k: string]: string;
        } | undefined;
    }, type?: string, messageId?: number) => void;
    sendSystemMessage: ({ data, messageName: mesName }: {
        data: Record<string, unknown>;
        messageName?: string | undefined;
    }, last?: boolean, messageId?: number, params?: {
        meta?: {
            [k: string]: string;
        } | undefined;
    }) => void;
    sendVoice: (data: Uint8Array, last?: boolean, messageId?: number, mesName?: string | undefined, params?: {
        meta?: {
            [k: string]: string;
        } | undefined;
    }) => void;
    batch: <T>(cb: (methods: BatchableMethods) => T) => T;
};
//# sourceMappingURL=methods.d.ts.map