import { IDevice, ISettings, ILegacyDevice, IInitialSettings, ICancel, IMessage, IChatHistoryRequest, IMute } from '../../proto';
import { Meta, VpsVersion, GetHistoryRequestClient, Mid } 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?: MetaStringified;
    }, type?: string, messageId?: number) => void;
    sendSystemMessage: (data: {
        data: Record<string, unknown>;
        messageName?: string;
    }, last: boolean, params?: {
        meta?: MetaStringified;
    }) => void;
    sendVoice: (data: Uint8Array, last: boolean, messageName?: string, params?: {
        meta?: MetaStringified;
    }) => void;
    sendSettings: (data: ISettings, last?: boolean, messageId?: number) => void;
    messageId: Mid;
};
export declare type SendSystemMessageData = {
    data: Record<string, unknown>;
    messageName?: string;
};
export declare type MetaStringified = {
    [key in keyof Meta]: string;
};
export declare const createClientMethods: ({ getMessageId, sendMessage, }: {
    getMessageId: () => Mid;
    sendMessage: (message: IMessage) => void;
}) => {
    sendDevice: (data: IDevice, last?: boolean, messageId?: Mid) => void;
    sendInitialSettings: (data: IInitialSettings, last?: boolean, messageId?: Mid, params?: {
        meta?: MetaStringified;
    }) => void;
    getHistoryRequest: (data: Required<Omit<IChatHistoryRequest, 'getHistoryRequest'>> & {
        history?: GetHistoryRequestClient;
    }, last?: boolean, messageId?: Mid) => void;
    sendCancel: (data: ICancel, last?: boolean, messageId?: Mid) => void;
    sendLegacyDevice: (data: ILegacyDevice, last?: boolean, messageId?: Mid) => void;
    sendMute: (data: IMute, last?: boolean, messageId?: Mid) => void;
    sendSettings: (data: ISettings, last?: boolean, messageId?: Mid) => 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?: MetaStringified | undefined;
    }, type?: string, messageId?: Mid) => void;
    sendSystemMessage: ({ data, messageName: mesName }: {
        data: Record<string, unknown>;
        messageName?: string | undefined;
    }, last?: boolean, messageId?: Mid, params?: {
        meta?: MetaStringified;
    }) => void;
    sendVoice: (data: Uint8Array, last?: boolean, messageId?: Mid, mesName?: string | undefined, params?: {
        meta?: MetaStringified;
    }) => void;
    batch: <T>(cb: (methods: BatchableMethods) => T) => T;
};
//# sourceMappingURL=methods.d.ts.map