/**
 *   Generated file. Do not edit
 */
import { TapResponse } from '@iotize/tap';
import { ScramLoginParams } from './models';
import { ScramLoginResponseBody } from './models';
import { EncryptedIVRequest } from './models';
import { EncryptedIVResponse } from './models';
import { AbstractService, ServiceCallType } from '@iotize/tap';
export declare class ScramService extends AbstractService {
    resources: {
        login: ServiceCallType<ScramLoginParams, ScramLoginResponseBody>;
        loginProof: ServiceCallType<Uint8Array, Uint8Array>;
        getHashIteration: ServiceCallType<void, number>;
        putHashIteration: ServiceCallType<number, void>;
        initialize: ServiceCallType<void, Uint8Array>;
        send: ServiceCallType<Uint8Array, Uint8Array>;
        setInitializationVector: ServiceCallType<Uint8Array, Uint8Array>;
        sendWithIV: ServiceCallType<EncryptedIVRequest, EncryptedIVResponse>;
    };
    /**
     * First command to initiate scram login, for client to send login and nonce to IoTize, and IoTize to return user salt, user iteration counter (j) and combined nonce
     *
     * LWM2M path: /1024//40
     *
     * @tapVersion(">=")
     * @param params input
     * @return
     */
    login(params: ScramLoginParams): Promise<TapResponse<ScramLoginResponseBody>>;
    /**
     *
     *
     * LWM2M path: /1024//40
     *
     * @tapVersion(">=")
     * @param params input
     * @return call options
     */
    loginCall(params: ScramLoginParams): ServiceCallType;
    /**
     * Scram login proof
     *
     * LWM2M path: /1024//41
     *
     * @tapVersion(">=")
     * @param params input
     * @return
     */
    loginProof(params: Uint8Array): Promise<TapResponse<Uint8Array>>;
    /**
     *
     *
     * LWM2M path: /1024//41
     *
     * @tapVersion(">=")
     * @param params input
     * @return call options
     */
    loginProofCall(params: Uint8Array): ServiceCallType;
    /**
     * Get scram hash iteration counter
     *
     * LWM2M path: /1024//42
     *
     * @tapVersion(">=1.11")
     * @return
     */
    getHashIteration(): Promise<TapResponse<number>>;
    /**
     *
     *
     * LWM2M path: /1024//42
     *
     * @tapVersion(">=1.11")
     * @return call options
     */
    getHashIterationCall(): ServiceCallType;
    /**
     * Set scram hash iteration counter
     *
     * LWM2M path: /1024//42
     *
     * @tapVersion(">=1.11")
     * @param data input
     * @return
     */
    putHashIteration(data: number): Promise<TapResponse<void>>;
    /**
     *
     *
     * LWM2M path: /1024//42
     *
     * @tapVersion(">=1.11")
     * @param data input
     * @return call options
     */
    putHashIterationCall(data: number): ServiceCallType;
    /**
     * Start scram communication
     *
     * LWM2M path: /1024//47
     *
     * @tapVersion(">=1.11")
     * @return
     */
    initialize(): Promise<TapResponse<Uint8Array>>;
    /**
     *
     *
     * LWM2M path: /1024//47
     *
     * @tapVersion(">=1.11")
     * @return call options
     */
    initializeCall(): ServiceCallType;
    /**
     * Communication channel
     *
     * LWM2M path: /1024//48
     *
     * @tapVersion(">=1.11")
     * @param data input
     * @return
     */
    send(data: Uint8Array): Promise<TapResponse<Uint8Array>>;
    /**
     *
     *
     * LWM2M path: /1024//48
     *
     * @tapVersion(">=1.11")
     * @param data input
     * @return call options
     */
    sendCall(data: Uint8Array): ServiceCallType;
    /**
     * Give encryption initialization vector to the Tap. The device returns its own initialization vector
     *
     * LWM2M path: /1024//45
     *
     * @tapVersion(">=1.85")
     * @param data input
     * @return
     */
    setInitializationVector(data: Uint8Array): Promise<TapResponse<Uint8Array>>;
    /**
     *
     *
     * LWM2M path: /1024//45
     *
     * @tapVersion(">=1.85")
     * @param data input
     * @return call options
     */
    setInitializationVectorCall(data: Uint8Array): ServiceCallType;
    /**
     * Communication channel with encryption initialization vectory
     *
     * LWM2M path: /1024//44
     *
     * @tapVersion(">=1.85")
     * @param data input
     * @return
     */
    sendWithIV(data: EncryptedIVRequest): Promise<TapResponse<EncryptedIVResponse>>;
    /**
     *
     *
     * LWM2M path: /1024//44
     *
     * @tapVersion(">=1.85")
     * @param data input
     * @return call options
     */
    sendWithIVCall(data: EncryptedIVRequest): ServiceCallType;
}
